// export Side_Positions , Side_Teams , Side_Nations ; export Teams , Team_Game , Position_Sides ; export def_base_level , def_amount_of_people , def_skill_level , def_starting_resources , def_difficulty_level , def_shipments_density , def_people_respawning , def_amount_of_apemen ; export is_depot , number_of_breastworks , number_of_people , skill_level , starting_resources , starting_crates , difficulty_level , respawning_time_min , respawning_time_max , amount_of_apemen , shipments_density , shared_vision ; export commander ; export global_defined , global_units ; export soldiers_created ; export normal_oil_deposits_locations , normal_sib_deposits_locations , depot_def , start_def , breastworks_def ; export nsol , neng , nmech , nsci ; export respawn , inqueue ; export sideP1 , sideP2 ; export randomedColors ; export waves ; starting begin Resetfog ;
   0: CALL_OW 335
// RandomizeAll ;
   4: CALL_OW 11
// randomedColors = [ ] ;
   8: LD_ADDR_EXP 44
  12: PUSH
  13: EMPTY
  14: ST_TO_ADDR
// waves = 0 ;
  15: LD_ADDR_EXP 45
  19: PUSH
  20: LD_INT 0
  22: ST_TO_ADDR
// LoadGameOptions ;
  23: CALL 3679 0 0
// InitMap ;
  27: CALL 4621 0 0
// RespawnNewUnits ;
  31: CALL 6971 0 0
// SetVisionAndAtitude ;
  35: CALL 5000 0 0
// PreparePlayers ;
  39: CALL 6688 0 0
// MultiplayerColorCheck ;
  43: CALL 52 0 0
// PrepareDifficulty ;
  47: CALL 209 0 0
// end ; end_of_file
  51: END
// export function MultiplayerColorCheck ; var i , tmp ; begin
  52: LD_INT 0
  54: PPUSH
  55: PPUSH
  56: PPUSH
// for i = 1 to Side_Positions do
  57: LD_ADDR_VAR 0 2
  61: PUSH
  62: DOUBLE
  63: LD_INT 1
  65: DEC
  66: ST_TO_ADDR
  67: LD_EXP 1
  71: PUSH
  72: FOR_TO
  73: IFFALSE 103
// if Side_Positions [ i ] = 1 then
  75: LD_EXP 1
  79: PUSH
  80: LD_VAR 0 2
  84: ARRAY
  85: PUSH
  86: LD_INT 1
  88: EQUAL
  89: IFFALSE 101
// sideP1 = i ;
  91: LD_ADDR_EXP 42
  95: PUSH
  96: LD_VAR 0 2
 100: ST_TO_ADDR
 101: GO 72
 103: POP
 104: POP
// for i = 1 to Side_Positions do
 105: LD_ADDR_VAR 0 2
 109: PUSH
 110: DOUBLE
 111: LD_INT 1
 113: DEC
 114: ST_TO_ADDR
 115: LD_EXP 1
 119: PUSH
 120: FOR_TO
 121: IFFALSE 151
// if Side_Positions [ i ] = 2 then
 123: LD_EXP 1
 127: PUSH
 128: LD_VAR 0 2
 132: ARRAY
 133: PUSH
 134: LD_INT 2
 136: EQUAL
 137: IFFALSE 149
// sideP2 = i ;
 139: LD_ADDR_EXP 43
 143: PUSH
 144: LD_VAR 0 2
 148: ST_TO_ADDR
 149: GO 120
 151: POP
 152: POP
// randomedColors = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] diff sideP1 ^ sideP2 ;
 153: LD_ADDR_EXP 44
 157: PUSH
 158: LD_INT 1
 160: PUSH
 161: LD_INT 2
 163: PUSH
 164: LD_INT 3
 166: PUSH
 167: LD_INT 4
 169: PUSH
 170: LD_INT 5
 172: PUSH
 173: LD_INT 6
 175: PUSH
 176: LD_INT 7
 178: PUSH
 179: LD_INT 8
 181: PUSH
 182: EMPTY
 183: LIST
 184: LIST
 185: LIST
 186: LIST
 187: LIST
 188: LIST
 189: LIST
 190: LIST
 191: PUSH
 192: LD_EXP 42
 196: PUSH
 197: LD_EXP 43
 201: ADD
 202: DIFF
 203: ST_TO_ADDR
// end ;
 204: LD_VAR 0 1
 208: RET
// export function PrepareDifficulty ; begin
 209: LD_INT 0
 211: PPUSH
// SetTech ( 5 , randomedColors [ 1 ] , state_researched ) ;
 212: LD_INT 5
 214: PPUSH
 215: LD_EXP 44
 219: PUSH
 220: LD_INT 1
 222: ARRAY
 223: PPUSH
 224: LD_INT 2
 226: PPUSH
 227: CALL_OW 322
// SetTech ( 48 , randomedColors [ 1 ] , state_enabled ) ;
 231: LD_INT 48
 233: PPUSH
 234: LD_EXP 44
 238: PUSH
 239: LD_INT 1
 241: ARRAY
 242: PPUSH
 243: LD_INT 1
 245: PPUSH
 246: CALL_OW 322
// if difficulty_level > 4 then
 250: LD_EXP 21
 254: PUSH
 255: LD_INT 4
 257: GREATER
 258: IFFALSE 393
// begin SetTech ( 48 , randomedColors [ 1 ] , state_researched ) ;
 260: LD_INT 48
 262: PPUSH
 263: LD_EXP 44
 267: PUSH
 268: LD_INT 1
 270: ARRAY
 271: PPUSH
 272: LD_INT 2
 274: PPUSH
 275: CALL_OW 322
// SetTech ( 51 , randomedColors [ 1 ] , state_researched ) ;
 279: LD_INT 51
 281: PPUSH
 282: LD_EXP 44
 286: PUSH
 287: LD_INT 1
 289: ARRAY
 290: PPUSH
 291: LD_INT 2
 293: PPUSH
 294: CALL_OW 322
// SetTech ( 54 , randomedColors [ 1 ] , state_researched ) ;
 298: LD_INT 54
 300: PPUSH
 301: LD_EXP 44
 305: PUSH
 306: LD_INT 1
 308: ARRAY
 309: PPUSH
 310: LD_INT 2
 312: PPUSH
 313: CALL_OW 322
// SetTech ( 57 , randomedColors [ 1 ] , state_researched ) ;
 317: LD_INT 57
 319: PPUSH
 320: LD_EXP 44
 324: PUSH
 325: LD_INT 1
 327: ARRAY
 328: PPUSH
 329: LD_INT 2
 331: PPUSH
 332: CALL_OW 322
// SetTech ( 60 , randomedColors [ 1 ] , state_researched ) ;
 336: LD_INT 60
 338: PPUSH
 339: LD_EXP 44
 343: PUSH
 344: LD_INT 1
 346: ARRAY
 347: PPUSH
 348: LD_INT 2
 350: PPUSH
 351: CALL_OW 322
// SetTech ( 63 , randomedColors [ 1 ] , state_researched ) ;
 355: LD_INT 63
 357: PPUSH
 358: LD_EXP 44
 362: PUSH
 363: LD_INT 1
 365: ARRAY
 366: PPUSH
 367: LD_INT 2
 369: PPUSH
 370: CALL_OW 322
// SetTech ( 66 , randomedColors [ 1 ] , state_researched ) ;
 374: LD_INT 66
 376: PPUSH
 377: LD_EXP 44
 381: PUSH
 382: LD_INT 1
 384: ARRAY
 385: PPUSH
 386: LD_INT 2
 388: PPUSH
 389: CALL_OW 322
// end ; if difficulty_level > 6 then
 393: LD_EXP 21
 397: PUSH
 398: LD_INT 6
 400: GREATER
 401: IFFALSE 536
// begin SetTech ( 49 , randomedColors [ 1 ] , state_researched ) ;
 403: LD_INT 49
 405: PPUSH
 406: LD_EXP 44
 410: PUSH
 411: LD_INT 1
 413: ARRAY
 414: PPUSH
 415: LD_INT 2
 417: PPUSH
 418: CALL_OW 322
// SetTech ( 52 , randomedColors [ 1 ] , state_researched ) ;
 422: LD_INT 52
 424: PPUSH
 425: LD_EXP 44
 429: PUSH
 430: LD_INT 1
 432: ARRAY
 433: PPUSH
 434: LD_INT 2
 436: PPUSH
 437: CALL_OW 322
// SetTech ( 55 , randomedColors [ 1 ] , state_researched ) ;
 441: LD_INT 55
 443: PPUSH
 444: LD_EXP 44
 448: PUSH
 449: LD_INT 1
 451: ARRAY
 452: PPUSH
 453: LD_INT 2
 455: PPUSH
 456: CALL_OW 322
// SetTech ( 58 , randomedColors [ 1 ] , state_researched ) ;
 460: LD_INT 58
 462: PPUSH
 463: LD_EXP 44
 467: PUSH
 468: LD_INT 1
 470: ARRAY
 471: PPUSH
 472: LD_INT 2
 474: PPUSH
 475: CALL_OW 322
// SetTech ( 61 , randomedColors [ 1 ] , state_researched ) ;
 479: LD_INT 61
 481: PPUSH
 482: LD_EXP 44
 486: PUSH
 487: LD_INT 1
 489: ARRAY
 490: PPUSH
 491: LD_INT 2
 493: PPUSH
 494: CALL_OW 322
// SetTech ( 64 , randomedColors [ 1 ] , state_researched ) ;
 498: LD_INT 64
 500: PPUSH
 501: LD_EXP 44
 505: PUSH
 506: LD_INT 1
 508: ARRAY
 509: PPUSH
 510: LD_INT 2
 512: PPUSH
 513: CALL_OW 322
// SetTech ( 67 , randomedColors [ 1 ] , state_researched ) ;
 517: LD_INT 67
 519: PPUSH
 520: LD_EXP 44
 524: PUSH
 525: LD_INT 1
 527: ARRAY
 528: PPUSH
 529: LD_INT 2
 531: PPUSH
 532: CALL_OW 322
// end ; if difficulty_level > 8 then
 536: LD_EXP 21
 540: PUSH
 541: LD_INT 8
 543: GREATER
 544: IFFALSE 679
// begin SetTech ( 50 , randomedColors [ 1 ] , state_researched ) ;
 546: LD_INT 50
 548: PPUSH
 549: LD_EXP 44
 553: PUSH
 554: LD_INT 1
 556: ARRAY
 557: PPUSH
 558: LD_INT 2
 560: PPUSH
 561: CALL_OW 322
// SetTech ( 53 , randomedColors [ 1 ] , state_researched ) ;
 565: LD_INT 53
 567: PPUSH
 568: LD_EXP 44
 572: PUSH
 573: LD_INT 1
 575: ARRAY
 576: PPUSH
 577: LD_INT 2
 579: PPUSH
 580: CALL_OW 322
// SetTech ( 56 , randomedColors [ 1 ] , state_researched ) ;
 584: LD_INT 56
 586: PPUSH
 587: LD_EXP 44
 591: PUSH
 592: LD_INT 1
 594: ARRAY
 595: PPUSH
 596: LD_INT 2
 598: PPUSH
 599: CALL_OW 322
// SetTech ( 59 , randomedColors [ 1 ] , state_researched ) ;
 603: LD_INT 59
 605: PPUSH
 606: LD_EXP 44
 610: PUSH
 611: LD_INT 1
 613: ARRAY
 614: PPUSH
 615: LD_INT 2
 617: PPUSH
 618: CALL_OW 322
// SetTech ( 62 , randomedColors [ 1 ] , state_researched ) ;
 622: LD_INT 62
 624: PPUSH
 625: LD_EXP 44
 629: PUSH
 630: LD_INT 1
 632: ARRAY
 633: PPUSH
 634: LD_INT 2
 636: PPUSH
 637: CALL_OW 322
// SetTech ( 65 , randomedColors [ 1 ] , state_researched ) ;
 641: LD_INT 65
 643: PPUSH
 644: LD_EXP 44
 648: PUSH
 649: LD_INT 1
 651: ARRAY
 652: PPUSH
 653: LD_INT 2
 655: PPUSH
 656: CALL_OW 322
// SetTech ( 68 , randomedColors [ 1 ] , state_researched ) ;
 660: LD_INT 68
 662: PPUSH
 663: LD_EXP 44
 667: PUSH
 668: LD_INT 1
 670: ARRAY
 671: PPUSH
 672: LD_INT 2
 674: PPUSH
 675: CALL_OW 322
// end ; end ;
 679: LD_VAR 0 1
 683: RET
// export function IntBazooka ( side ) ; var i , j , rnd , bazookerList , enemyUnits ; begin
 684: LD_INT 0
 686: PPUSH
 687: PPUSH
 688: PPUSH
 689: PPUSH
 690: PPUSH
 691: PPUSH
// bazookerList := FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_bazooker ] , [ f_ok ] ] ) ;
 692: LD_ADDR_VAR 0 6
 696: PUSH
 697: LD_INT 22
 699: PUSH
 700: LD_VAR 0 1
 704: PUSH
 705: EMPTY
 706: LIST
 707: LIST
 708: PUSH
 709: LD_INT 25
 711: PUSH
 712: LD_INT 9
 714: PUSH
 715: EMPTY
 716: LIST
 717: LIST
 718: PUSH
 719: LD_INT 50
 721: PUSH
 722: EMPTY
 723: LIST
 724: PUSH
 725: EMPTY
 726: LIST
 727: LIST
 728: LIST
 729: PPUSH
 730: CALL_OW 69
 734: ST_TO_ADDR
// enemyUnits := FilterAllUnits ( [ [ f_enemy , side ] , [ f_not , [ f_type , unit_building ] ] ] ) ;
 735: LD_ADDR_VAR 0 7
 739: PUSH
 740: LD_INT 81
 742: PUSH
 743: LD_VAR 0 1
 747: PUSH
 748: EMPTY
 749: LIST
 750: LIST
 751: PUSH
 752: LD_INT 3
 754: PUSH
 755: LD_INT 21
 757: PUSH
 758: LD_INT 3
 760: PUSH
 761: EMPTY
 762: LIST
 763: LIST
 764: PUSH
 765: EMPTY
 766: LIST
 767: LIST
 768: PUSH
 769: EMPTY
 770: LIST
 771: LIST
 772: PPUSH
 773: CALL_OW 69
 777: ST_TO_ADDR
// if bazookerList > 0 and enemyUnits > 0 then
 778: LD_VAR 0 6
 782: PUSH
 783: LD_INT 0
 785: GREATER
 786: PUSH
 787: LD_VAR 0 7
 791: PUSH
 792: LD_INT 0
 794: GREATER
 795: AND
 796: IFFALSE 1005
// begin for i in bazookerList do
 798: LD_ADDR_VAR 0 3
 802: PUSH
 803: LD_VAR 0 6
 807: PUSH
 808: FOR_IN
 809: IFFALSE 1003
// for j in enemyUnits do
 811: LD_ADDR_VAR 0 4
 815: PUSH
 816: LD_VAR 0 7
 820: PUSH
 821: FOR_IN
 822: IFFALSE 999
// if GetDistUnits ( i , j ) <= 15 then
 824: LD_VAR 0 3
 828: PPUSH
 829: LD_VAR 0 4
 833: PPUSH
 834: CALL_OW 296
 838: PUSH
 839: LD_INT 15
 841: LESSEQUAL
 842: IFFALSE 997
// begin rnd = Rand ( 1 , 3 ) ;
 844: LD_ADDR_VAR 0 5
 848: PUSH
 849: LD_INT 1
 851: PPUSH
 852: LD_INT 3
 854: PPUSH
 855: CALL_OW 12
 859: ST_TO_ADDR
// case rnd of 1 :
 860: LD_VAR 0 5
 864: PUSH
 865: LD_INT 1
 867: DOUBLE
 868: EQUAL
 869: IFTRUE 873
 871: GO 905
 873: POP
// ComTimeShift ( i , GetX ( j ) , GetY ( j ) ) ; 2 :
 874: LD_VAR 0 3
 878: PPUSH
 879: LD_VAR 0 4
 883: PPUSH
 884: CALL_OW 250
 888: PPUSH
 889: LD_VAR 0 4
 893: PPUSH
 894: CALL_OW 251
 898: PPUSH
 899: CALL_OW 154
 903: GO 997
 905: LD_INT 2
 907: DOUBLE
 908: EQUAL
 909: IFTRUE 913
 911: GO 971
 913: POP
// ComSpaceShift ( i , GetX ( j ) + Rand ( - 1 , 1 ) , GetY ( j ) + Rand ( - 1 , 1 ) ) ; 3 :
 914: LD_VAR 0 3
 918: PPUSH
 919: LD_VAR 0 4
 923: PPUSH
 924: CALL_OW 250
 928: PUSH
 929: LD_INT 1
 931: NEG
 932: PPUSH
 933: LD_INT 1
 935: PPUSH
 936: CALL_OW 12
 940: PLUS
 941: PPUSH
 942: LD_VAR 0 4
 946: PPUSH
 947: CALL_OW 251
 951: PUSH
 952: LD_INT 1
 954: NEG
 955: PPUSH
 956: LD_INT 1
 958: PPUSH
 959: CALL_OW 12
 963: PLUS
 964: PPUSH
 965: CALL_OW 153
 969: GO 997
 971: LD_INT 3
 973: DOUBLE
 974: EQUAL
 975: IFTRUE 979
 977: GO 996
 979: POP
// ComAttackUnit ( i , j ) ; end ;
 980: LD_VAR 0 3
 984: PPUSH
 985: LD_VAR 0 4
 989: PPUSH
 990: CALL_OW 115
 994: GO 997
 996: POP
// end ;
 997: GO 821
 999: POP
1000: POP
1001: GO 808
1003: POP
1004: POP
// end ; end ;
1005: LD_VAR 0 2
1009: RET
// export function RespawnAttackVehicle ( area , side , vehCount , mehskill , nation , vehEngine , vehControl , RUWeapons , ARWeapons , AMWeapon , targetSide ) ; var i , j , un , veh , ruChassisTab , arChassisTab , amChassisTab , vehicleOK_list , target1 , target2 ; begin
1010: LD_INT 0
1012: PPUSH
1013: PPUSH
1014: PPUSH
1015: PPUSH
1016: PPUSH
1017: PPUSH
1018: PPUSH
1019: PPUSH
1020: PPUSH
1021: PPUSH
1022: PPUSH
// amChassisTab = [ ] ;
1023: LD_ADDR_VAR 0 19
1027: PUSH
1028: EMPTY
1029: ST_TO_ADDR
// arChassisTab = [ ] ;
1030: LD_ADDR_VAR 0 18
1034: PUSH
1035: EMPTY
1036: ST_TO_ADDR
// ruChassisTab = [ ] ;
1037: LD_ADDR_VAR 0 17
1041: PUSH
1042: EMPTY
1043: ST_TO_ADDR
// repeat wait ( 0 0$01 ) ;
1044: LD_INT 35
1046: PPUSH
1047: CALL_OW 67
// if nation = 1 then
1051: LD_VAR 0 5
1055: PUSH
1056: LD_INT 1
1058: EQUAL
1059: IFFALSE 1539
// begin uc_side = side ;
1061: LD_ADDR_OWVAR 20
1065: PUSH
1066: LD_VAR 0 2
1070: ST_TO_ADDR
// uc_nation = nation ;
1071: LD_ADDR_OWVAR 21
1075: PUSH
1076: LD_VAR 0 5
1080: ST_TO_ADDR
// vc_engine = vehengine ;
1081: LD_ADDR_OWVAR 39
1085: PUSH
1086: LD_VAR 0 6
1090: ST_TO_ADDR
// vc_control = vehControl ;
1091: LD_ADDR_OWVAR 38
1095: PUSH
1096: LD_VAR 0 7
1100: ST_TO_ADDR
// vc_weapon = AMWeapon [ Rand ( 1 , AMWeapon ) ] ;
1101: LD_ADDR_OWVAR 40
1105: PUSH
1106: LD_VAR 0 10
1110: PUSH
1111: LD_INT 1
1113: PPUSH
1114: LD_VAR 0 10
1118: PPUSH
1119: CALL_OW 12
1123: ARRAY
1124: ST_TO_ADDR
// if vc_weapon = 2 or vc_weapon = 3 then
1125: LD_OWVAR 40
1129: PUSH
1130: LD_INT 2
1132: EQUAL
1133: PUSH
1134: LD_OWVAR 40
1138: PUSH
1139: LD_INT 3
1141: EQUAL
1142: OR
1143: IFFALSE 1196
// begin amChassisTab = [ 1 , 2 , 3 , 4 , 5 ] ;
1145: LD_ADDR_VAR 0 19
1149: PUSH
1150: LD_INT 1
1152: PUSH
1153: LD_INT 2
1155: PUSH
1156: LD_INT 3
1158: PUSH
1159: LD_INT 4
1161: PUSH
1162: LD_INT 5
1164: PUSH
1165: EMPTY
1166: LIST
1167: LIST
1168: LIST
1169: LIST
1170: LIST
1171: ST_TO_ADDR
// vc_chassis = amChassisTab [ Rand ( 1 , amChassisTab ) ] ;
1172: LD_ADDR_OWVAR 37
1176: PUSH
1177: LD_VAR 0 19
1181: PUSH
1182: LD_INT 1
1184: PPUSH
1185: LD_VAR 0 19
1189: PPUSH
1190: CALL_OW 12
1194: ARRAY
1195: ST_TO_ADDR
// end ; if vc_weapon = 4 or vc_weapon = 5 or vc_weapon = 9 or vc_weapon = 11 or vc_weapon = 7 then
1196: LD_OWVAR 40
1200: PUSH
1201: LD_INT 4
1203: EQUAL
1204: PUSH
1205: LD_OWVAR 40
1209: PUSH
1210: LD_INT 5
1212: EQUAL
1213: OR
1214: PUSH
1215: LD_OWVAR 40
1219: PUSH
1220: LD_INT 9
1222: EQUAL
1223: OR
1224: PUSH
1225: LD_OWVAR 40
1229: PUSH
1230: LD_INT 11
1232: EQUAL
1233: OR
1234: PUSH
1235: LD_OWVAR 40
1239: PUSH
1240: LD_INT 7
1242: EQUAL
1243: OR
1244: IFFALSE 1293
// begin amChassisTab = [ 2 , 3 , 4 , 5 ] ;
1246: LD_ADDR_VAR 0 19
1250: PUSH
1251: LD_INT 2
1253: PUSH
1254: LD_INT 3
1256: PUSH
1257: LD_INT 4
1259: PUSH
1260: LD_INT 5
1262: PUSH
1263: EMPTY
1264: LIST
1265: LIST
1266: LIST
1267: LIST
1268: ST_TO_ADDR
// vc_chassis = amChassisTab [ Rand ( 1 , amChassisTab ) ] ;
1269: LD_ADDR_OWVAR 37
1273: PUSH
1274: LD_VAR 0 19
1278: PUSH
1279: LD_INT 1
1281: PPUSH
1282: LD_VAR 0 19
1286: PPUSH
1287: CALL_OW 12
1291: ARRAY
1292: ST_TO_ADDR
// end ; if vc_weapon = 8 or vc_weapon = 6 or vc_weapon = 10 then
1293: LD_OWVAR 40
1297: PUSH
1298: LD_INT 8
1300: EQUAL
1301: PUSH
1302: LD_OWVAR 40
1306: PUSH
1307: LD_INT 6
1309: EQUAL
1310: OR
1311: PUSH
1312: LD_OWVAR 40
1316: PUSH
1317: LD_INT 10
1319: EQUAL
1320: OR
1321: IFFALSE 1362
// begin amChassisTab = [ 4 , 5 ] ;
1323: LD_ADDR_VAR 0 19
1327: PUSH
1328: LD_INT 4
1330: PUSH
1331: LD_INT 5
1333: PUSH
1334: EMPTY
1335: LIST
1336: LIST
1337: ST_TO_ADDR
// vc_chassis = amChassisTab [ Rand ( 1 , amChassisTab ) ] ;
1338: LD_ADDR_OWVAR 37
1342: PUSH
1343: LD_VAR 0 19
1347: PUSH
1348: LD_INT 1
1350: PPUSH
1351: LD_VAR 0 19
1355: PPUSH
1356: CALL_OW 12
1360: ARRAY
1361: ST_TO_ADDR
// end ; veh = CreateVehicle ;
1362: LD_ADDR_VAR 0 16
1366: PUSH
1367: CALL_OW 45
1371: ST_TO_ADDR
// PlaceUnitArea ( veh , area , false ) ;
1372: LD_VAR 0 16
1376: PPUSH
1377: LD_VAR 0 1
1381: PPUSH
1382: LD_INT 0
1384: PPUSH
1385: CALL_OW 49
// if vc_control = 1 then
1389: LD_OWVAR 38
1393: PUSH
1394: LD_INT 1
1396: EQUAL
1397: IFFALSE 1525
// begin hc_gallery =  ;
1399: LD_ADDR_OWVAR 33
1403: PUSH
1404: LD_STRING 
1406: ST_TO_ADDR
// hc_name =  ;
1407: LD_ADDR_OWVAR 26
1411: PUSH
1412: LD_STRING 
1414: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1415: LD_ADDR_OWVAR 29
1419: PUSH
1420: LD_INT 9
1422: PPUSH
1423: LD_INT 11
1425: PPUSH
1426: CALL_OW 12
1430: PUSH
1431: LD_INT 10
1433: PPUSH
1434: LD_INT 12
1436: PPUSH
1437: CALL_OW 12
1441: PUSH
1442: EMPTY
1443: LIST
1444: LIST
1445: ST_TO_ADDR
// hc_skills = [ mehskill , mehskill , mehskill , mehskill ] ;
1446: LD_ADDR_OWVAR 31
1450: PUSH
1451: LD_VAR 0 4
1455: PUSH
1456: LD_VAR 0 4
1460: PUSH
1461: LD_VAR 0 4
1465: PUSH
1466: LD_VAR 0 4
1470: PUSH
1471: EMPTY
1472: LIST
1473: LIST
1474: LIST
1475: LIST
1476: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1477: LD_ADDR_OWVAR 27
1481: PUSH
1482: LD_INT 1
1484: PPUSH
1485: LD_INT 2
1487: PPUSH
1488: CALL_OW 12
1492: ST_TO_ADDR
// hc_class = 3 ;
1493: LD_ADDR_OWVAR 28
1497: PUSH
1498: LD_INT 3
1500: ST_TO_ADDR
// un = CreateHuman ;
1501: LD_ADDR_VAR 0 15
1505: PUSH
1506: CALL_OW 44
1510: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
1511: LD_VAR 0 15
1515: PPUSH
1516: LD_VAR 0 16
1520: PPUSH
1521: CALL_OW 52
// end ; i = i + 1 ;
1525: LD_ADDR_VAR 0 13
1529: PUSH
1530: LD_VAR 0 13
1534: PUSH
1535: LD_INT 1
1537: PLUS
1538: ST_TO_ADDR
// end ; if nation = 2 then
1539: LD_VAR 0 5
1543: PUSH
1544: LD_INT 2
1546: EQUAL
1547: IFFALSE 1950
// begin uc_side = side ;
1549: LD_ADDR_OWVAR 20
1553: PUSH
1554: LD_VAR 0 2
1558: ST_TO_ADDR
// uc_nation = nation ;
1559: LD_ADDR_OWVAR 21
1563: PUSH
1564: LD_VAR 0 5
1568: ST_TO_ADDR
// vc_engine = vehengine ;
1569: LD_ADDR_OWVAR 39
1573: PUSH
1574: LD_VAR 0 6
1578: ST_TO_ADDR
// vc_control = vehControl ;
1579: LD_ADDR_OWVAR 38
1583: PUSH
1584: LD_VAR 0 7
1588: ST_TO_ADDR
// vc_weapon = ARWeapons [ Rand ( 1 , ARWeapons ) ] ;
1589: LD_ADDR_OWVAR 40
1593: PUSH
1594: LD_VAR 0 9
1598: PUSH
1599: LD_INT 1
1601: PPUSH
1602: LD_VAR 0 9
1606: PPUSH
1607: CALL_OW 12
1611: ARRAY
1612: ST_TO_ADDR
// if vc_weapon = 24 or vc_weapon = 22 or vc_weapon = 23 or vc_weapon = 30 then
1613: LD_OWVAR 40
1617: PUSH
1618: LD_INT 24
1620: EQUAL
1621: PUSH
1622: LD_OWVAR 40
1626: PUSH
1627: LD_INT 22
1629: EQUAL
1630: OR
1631: PUSH
1632: LD_OWVAR 40
1636: PUSH
1637: LD_INT 23
1639: EQUAL
1640: OR
1641: PUSH
1642: LD_OWVAR 40
1646: PUSH
1647: LD_INT 30
1649: EQUAL
1650: OR
1651: IFFALSE 1688
// begin arChassisTab = [ 14 ] ;
1653: LD_ADDR_VAR 0 18
1657: PUSH
1658: LD_INT 14
1660: PUSH
1661: EMPTY
1662: LIST
1663: ST_TO_ADDR
// vc_chassis = arChassisTab [ Rand ( 1 , arChassisTab ) ] ;
1664: LD_ADDR_OWVAR 37
1668: PUSH
1669: LD_VAR 0 18
1673: PUSH
1674: LD_INT 1
1676: PPUSH
1677: LD_VAR 0 18
1681: PPUSH
1682: CALL_OW 12
1686: ARRAY
1687: ST_TO_ADDR
// end ; if vc_weapon = 29 or vc_weapon = 28 or vc_weapon = 27 or vc_weapon = 26 or vc_weapon = 25 then
1688: LD_OWVAR 40
1692: PUSH
1693: LD_INT 29
1695: EQUAL
1696: PUSH
1697: LD_OWVAR 40
1701: PUSH
1702: LD_INT 28
1704: EQUAL
1705: OR
1706: PUSH
1707: LD_OWVAR 40
1711: PUSH
1712: LD_INT 27
1714: EQUAL
1715: OR
1716: PUSH
1717: LD_OWVAR 40
1721: PUSH
1722: LD_INT 26
1724: EQUAL
1725: OR
1726: PUSH
1727: LD_OWVAR 40
1731: PUSH
1732: LD_INT 25
1734: EQUAL
1735: OR
1736: IFFALSE 1773
// begin arChassisTab = [ 14 ] ;
1738: LD_ADDR_VAR 0 18
1742: PUSH
1743: LD_INT 14
1745: PUSH
1746: EMPTY
1747: LIST
1748: ST_TO_ADDR
// vc_chassis = arChassisTab [ Rand ( 1 , arChassisTab ) ] ;
1749: LD_ADDR_OWVAR 37
1753: PUSH
1754: LD_VAR 0 18
1758: PUSH
1759: LD_INT 1
1761: PPUSH
1762: LD_VAR 0 18
1766: PPUSH
1767: CALL_OW 12
1771: ARRAY
1772: ST_TO_ADDR
// end ; veh = CreateVehicle ;
1773: LD_ADDR_VAR 0 16
1777: PUSH
1778: CALL_OW 45
1782: ST_TO_ADDR
// PlaceUnitArea ( veh , area , false ) ;
1783: LD_VAR 0 16
1787: PPUSH
1788: LD_VAR 0 1
1792: PPUSH
1793: LD_INT 0
1795: PPUSH
1796: CALL_OW 49
// if vc_control = 1 then
1800: LD_OWVAR 38
1804: PUSH
1805: LD_INT 1
1807: EQUAL
1808: IFFALSE 1936
// begin hc_gallery =  ;
1810: LD_ADDR_OWVAR 33
1814: PUSH
1815: LD_STRING 
1817: ST_TO_ADDR
// hc_name =  ;
1818: LD_ADDR_OWVAR 26
1822: PUSH
1823: LD_STRING 
1825: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1826: LD_ADDR_OWVAR 29
1830: PUSH
1831: LD_INT 9
1833: PPUSH
1834: LD_INT 11
1836: PPUSH
1837: CALL_OW 12
1841: PUSH
1842: LD_INT 10
1844: PPUSH
1845: LD_INT 12
1847: PPUSH
1848: CALL_OW 12
1852: PUSH
1853: EMPTY
1854: LIST
1855: LIST
1856: ST_TO_ADDR
// hc_skills = [ mehskill , mehskill , mehskill , mehskill ] ;
1857: LD_ADDR_OWVAR 31
1861: PUSH
1862: LD_VAR 0 4
1866: PUSH
1867: LD_VAR 0 4
1871: PUSH
1872: LD_VAR 0 4
1876: PUSH
1877: LD_VAR 0 4
1881: PUSH
1882: EMPTY
1883: LIST
1884: LIST
1885: LIST
1886: LIST
1887: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1888: LD_ADDR_OWVAR 27
1892: PUSH
1893: LD_INT 1
1895: PPUSH
1896: LD_INT 2
1898: PPUSH
1899: CALL_OW 12
1903: ST_TO_ADDR
// hc_class = 3 ;
1904: LD_ADDR_OWVAR 28
1908: PUSH
1909: LD_INT 3
1911: ST_TO_ADDR
// un = CreateHuman ;
1912: LD_ADDR_VAR 0 15
1916: PUSH
1917: CALL_OW 44
1921: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
1922: LD_VAR 0 15
1926: PPUSH
1927: LD_VAR 0 16
1931: PPUSH
1932: CALL_OW 52
// end ; i = i + 1 ;
1936: LD_ADDR_VAR 0 13
1940: PUSH
1941: LD_VAR 0 13
1945: PUSH
1946: LD_INT 1
1948: PLUS
1949: ST_TO_ADDR
// end ; if nation = 3 then
1950: LD_VAR 0 5
1954: PUSH
1955: LD_INT 3
1957: EQUAL
1958: IFFALSE 2357
// begin uc_side = side ;
1960: LD_ADDR_OWVAR 20
1964: PUSH
1965: LD_VAR 0 2
1969: ST_TO_ADDR
// uc_nation = nation ;
1970: LD_ADDR_OWVAR 21
1974: PUSH
1975: LD_VAR 0 5
1979: ST_TO_ADDR
// vc_engine = vehengine ;
1980: LD_ADDR_OWVAR 39
1984: PUSH
1985: LD_VAR 0 6
1989: ST_TO_ADDR
// vc_control = vehControl ;
1990: LD_ADDR_OWVAR 38
1994: PUSH
1995: LD_VAR 0 7
1999: ST_TO_ADDR
// vc_weapon = RUWeapons [ Rand ( 1 , RUWeapons ) ] ;
2000: LD_ADDR_OWVAR 40
2004: PUSH
2005: LD_VAR 0 8
2009: PUSH
2010: LD_INT 1
2012: PPUSH
2013: LD_VAR 0 8
2017: PPUSH
2018: CALL_OW 12
2022: ARRAY
2023: ST_TO_ADDR
// if vc_weapon = 42 or vc_weapon = 43 or vc_weapon = 44 or vc_weapon = 45 or vc_weapon = 49 then
2024: LD_OWVAR 40
2028: PUSH
2029: LD_INT 42
2031: EQUAL
2032: PUSH
2033: LD_OWVAR 40
2037: PUSH
2038: LD_INT 43
2040: EQUAL
2041: OR
2042: PUSH
2043: LD_OWVAR 40
2047: PUSH
2048: LD_INT 44
2050: EQUAL
2051: OR
2052: PUSH
2053: LD_OWVAR 40
2057: PUSH
2058: LD_INT 45
2060: EQUAL
2061: OR
2062: PUSH
2063: LD_OWVAR 40
2067: PUSH
2068: LD_INT 49
2070: EQUAL
2071: OR
2072: IFFALSE 2121
// begin ruChassisTab = [ 21 , 22 , 23 , 24 ] ;
2074: LD_ADDR_VAR 0 17
2078: PUSH
2079: LD_INT 21
2081: PUSH
2082: LD_INT 22
2084: PUSH
2085: LD_INT 23
2087: PUSH
2088: LD_INT 24
2090: PUSH
2091: EMPTY
2092: LIST
2093: LIST
2094: LIST
2095: LIST
2096: ST_TO_ADDR
// vc_chassis = ruChassisTab [ Rand ( 1 , ruChassisTab ) ] ;
2097: LD_ADDR_OWVAR 37
2101: PUSH
2102: LD_VAR 0 17
2106: PUSH
2107: LD_INT 1
2109: PPUSH
2110: LD_VAR 0 17
2114: PPUSH
2115: CALL_OW 12
2119: ARRAY
2120: ST_TO_ADDR
// end ; if vc_weapon = 46 or vc_weapon = 47 then
2121: LD_OWVAR 40
2125: PUSH
2126: LD_INT 46
2128: EQUAL
2129: PUSH
2130: LD_OWVAR 40
2134: PUSH
2135: LD_INT 47
2137: EQUAL
2138: OR
2139: IFFALSE 2180
// begin ruChassisTab = [ 23 , 24 ] ;
2141: LD_ADDR_VAR 0 17
2145: PUSH
2146: LD_INT 23
2148: PUSH
2149: LD_INT 24
2151: PUSH
2152: EMPTY
2153: LIST
2154: LIST
2155: ST_TO_ADDR
// vc_chassis = ruChassisTab [ Rand ( 1 , ruChassisTab ) ] ;
2156: LD_ADDR_OWVAR 37
2160: PUSH
2161: LD_VAR 0 17
2165: PUSH
2166: LD_INT 1
2168: PPUSH
2169: LD_VAR 0 17
2173: PPUSH
2174: CALL_OW 12
2178: ARRAY
2179: ST_TO_ADDR
// end ; veh = CreateVehicle ;
2180: LD_ADDR_VAR 0 16
2184: PUSH
2185: CALL_OW 45
2189: ST_TO_ADDR
// PlaceUnitArea ( veh , area , false ) ;
2190: LD_VAR 0 16
2194: PPUSH
2195: LD_VAR 0 1
2199: PPUSH
2200: LD_INT 0
2202: PPUSH
2203: CALL_OW 49
// if vc_control = 1 then
2207: LD_OWVAR 38
2211: PUSH
2212: LD_INT 1
2214: EQUAL
2215: IFFALSE 2343
// begin hc_gallery =  ;
2217: LD_ADDR_OWVAR 33
2221: PUSH
2222: LD_STRING 
2224: ST_TO_ADDR
// hc_name =  ;
2225: LD_ADDR_OWVAR 26
2229: PUSH
2230: LD_STRING 
2232: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2233: LD_ADDR_OWVAR 29
2237: PUSH
2238: LD_INT 9
2240: PPUSH
2241: LD_INT 11
2243: PPUSH
2244: CALL_OW 12
2248: PUSH
2249: LD_INT 10
2251: PPUSH
2252: LD_INT 12
2254: PPUSH
2255: CALL_OW 12
2259: PUSH
2260: EMPTY
2261: LIST
2262: LIST
2263: ST_TO_ADDR
// hc_skills = [ mehskill , mehskill , mehskill , mehskill ] ;
2264: LD_ADDR_OWVAR 31
2268: PUSH
2269: LD_VAR 0 4
2273: PUSH
2274: LD_VAR 0 4
2278: PUSH
2279: LD_VAR 0 4
2283: PUSH
2284: LD_VAR 0 4
2288: PUSH
2289: EMPTY
2290: LIST
2291: LIST
2292: LIST
2293: LIST
2294: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2295: LD_ADDR_OWVAR 27
2299: PUSH
2300: LD_INT 1
2302: PPUSH
2303: LD_INT 2
2305: PPUSH
2306: CALL_OW 12
2310: ST_TO_ADDR
// hc_class = 3 ;
2311: LD_ADDR_OWVAR 28
2315: PUSH
2316: LD_INT 3
2318: ST_TO_ADDR
// un = CreateHuman ;
2319: LD_ADDR_VAR 0 15
2323: PUSH
2324: CALL_OW 44
2328: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
2329: LD_VAR 0 15
2333: PPUSH
2334: LD_VAR 0 16
2338: PPUSH
2339: CALL_OW 52
// end ; i = i + 1 ;
2343: LD_ADDR_VAR 0 13
2347: PUSH
2348: LD_VAR 0 13
2352: PUSH
2353: LD_INT 1
2355: PLUS
2356: ST_TO_ADDR
// end ; until i = vehCount ;
2357: LD_VAR 0 13
2361: PUSH
2362: LD_VAR 0 3
2366: EQUAL
2367: IFFALSE 1044
// repeat wait ( 0 0$3 ) ;
2369: LD_INT 105
2371: PPUSH
2372: CALL_OW 67
// if FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_ok ] ] ) > 0 then
2376: LD_INT 22
2378: PUSH
2379: LD_VAR 0 2
2383: PUSH
2384: EMPTY
2385: LIST
2386: LIST
2387: PUSH
2388: LD_INT 21
2390: PUSH
2391: LD_INT 2
2393: PUSH
2394: EMPTY
2395: LIST
2396: LIST
2397: PUSH
2398: LD_INT 50
2400: PUSH
2401: EMPTY
2402: LIST
2403: PUSH
2404: EMPTY
2405: LIST
2406: LIST
2407: LIST
2408: PPUSH
2409: CALL_OW 69
2413: PUSH
2414: LD_INT 0
2416: GREATER
2417: IFFALSE 2641
// begin for i in FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_ok ] ] ) do
2419: LD_ADDR_VAR 0 13
2423: PUSH
2424: LD_INT 22
2426: PUSH
2427: LD_VAR 0 2
2431: PUSH
2432: EMPTY
2433: LIST
2434: LIST
2435: PUSH
2436: LD_INT 21
2438: PUSH
2439: LD_INT 2
2441: PUSH
2442: EMPTY
2443: LIST
2444: LIST
2445: PUSH
2446: LD_INT 50
2448: PUSH
2449: EMPTY
2450: LIST
2451: PUSH
2452: EMPTY
2453: LIST
2454: LIST
2455: LIST
2456: PPUSH
2457: CALL_OW 69
2461: PUSH
2462: FOR_IN
2463: IFFALSE 2639
// begin target1 := NearestUnitToUnit ( FilterAllUnits ( [ f_enemy , side ] ) , i ) ;
2465: LD_ADDR_VAR 0 21
2469: PUSH
2470: LD_INT 81
2472: PUSH
2473: LD_VAR 0 2
2477: PUSH
2478: EMPTY
2479: LIST
2480: LIST
2481: PPUSH
2482: CALL_OW 69
2486: PPUSH
2487: LD_VAR 0 13
2491: PPUSH
2492: CALL_OW 74
2496: ST_TO_ADDR
// target2 := NearestUnitToUnit ( FilterAllUnits ( [ [ [ f_enemy , side ] , [ f_or , [ f_occupied ] , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ] ) , i ) ;
2497: LD_ADDR_VAR 0 22
2501: PUSH
2502: LD_INT 81
2504: PUSH
2505: LD_VAR 0 2
2509: PUSH
2510: EMPTY
2511: LIST
2512: LIST
2513: PUSH
2514: LD_INT 2
2516: PUSH
2517: LD_INT 59
2519: PUSH
2520: EMPTY
2521: LIST
2522: PUSH
2523: LD_INT 21
2525: PUSH
2526: LD_INT 1
2528: PUSH
2529: EMPTY
2530: LIST
2531: LIST
2532: PUSH
2533: LD_INT 21
2535: PUSH
2536: LD_INT 2
2538: PUSH
2539: EMPTY
2540: LIST
2541: LIST
2542: PUSH
2543: EMPTY
2544: LIST
2545: LIST
2546: LIST
2547: LIST
2548: PUSH
2549: EMPTY
2550: LIST
2551: LIST
2552: PUSH
2553: EMPTY
2554: LIST
2555: PPUSH
2556: CALL_OW 69
2560: PPUSH
2561: LD_VAR 0 13
2565: PPUSH
2566: CALL_OW 74
2570: ST_TO_ADDR
// if GetDistUnits ( i , target1 ) + 8 < GetDistUnits ( i , target2 ) then
2571: LD_VAR 0 13
2575: PPUSH
2576: LD_VAR 0 21
2580: PPUSH
2581: CALL_OW 296
2585: PUSH
2586: LD_INT 8
2588: PLUS
2589: PUSH
2590: LD_VAR 0 13
2594: PPUSH
2595: LD_VAR 0 22
2599: PPUSH
2600: CALL_OW 296
2604: LESS
2605: IFFALSE 2623
// begin ComAttackUnit ( i , target1 ) ;
2607: LD_VAR 0 13
2611: PPUSH
2612: LD_VAR 0 21
2616: PPUSH
2617: CALL_OW 115
// end else
2621: GO 2637
// begin ComAttackUnit ( i , target2 ) ;
2623: LD_VAR 0 13
2627: PPUSH
2628: LD_VAR 0 22
2632: PPUSH
2633: CALL_OW 115
// end ; end ;
2637: GO 2462
2639: POP
2640: POP
// end ; until FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_ok ] ] ) = 0 ;
2641: LD_INT 22
2643: PUSH
2644: LD_VAR 0 2
2648: PUSH
2649: EMPTY
2650: LIST
2651: LIST
2652: PUSH
2653: LD_INT 21
2655: PUSH
2656: LD_INT 2
2658: PUSH
2659: EMPTY
2660: LIST
2661: LIST
2662: PUSH
2663: LD_INT 50
2665: PUSH
2666: EMPTY
2667: LIST
2668: PUSH
2669: EMPTY
2670: LIST
2671: LIST
2672: LIST
2673: PPUSH
2674: CALL_OW 69
2678: PUSH
2679: LD_INT 0
2681: EQUAL
2682: IFFALSE 2369
// end ;
2684: LD_VAR 0 12
2688: RET
// export function RespawnAttackInfantry ( side , nation , soldierCount , sniperCount , bazookCount , mortalCount , medicCount , skil , spawnArea , healArea , targetSide ) ; var i , j , un , damageUnit_list , medic_list , soldiersOK_list , enemyUnits , und , target1 , target2 ; begin
2689: LD_INT 0
2691: PPUSH
2692: PPUSH
2693: PPUSH
2694: PPUSH
2695: PPUSH
2696: PPUSH
2697: PPUSH
2698: PPUSH
2699: PPUSH
2700: PPUSH
2701: PPUSH
// for i = 1 to soldierCount do
2702: LD_ADDR_VAR 0 13
2706: PUSH
2707: DOUBLE
2708: LD_INT 1
2710: DEC
2711: ST_TO_ADDR
2712: LD_VAR 0 3
2716: PUSH
2717: FOR_TO
2718: IFFALSE 2855
// begin uc_side = side ;
2720: LD_ADDR_OWVAR 20
2724: PUSH
2725: LD_VAR 0 1
2729: ST_TO_ADDR
// uc_nation = nation ;
2730: LD_ADDR_OWVAR 21
2734: PUSH
2735: LD_VAR 0 2
2739: ST_TO_ADDR
// hc_name =  ;
2740: LD_ADDR_OWVAR 26
2744: PUSH
2745: LD_STRING 
2747: ST_TO_ADDR
// hc_gallery =  ;
2748: LD_ADDR_OWVAR 33
2752: PUSH
2753: LD_STRING 
2755: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
2756: LD_ADDR_OWVAR 29
2760: PUSH
2761: LD_INT 10
2763: PUSH
2764: LD_INT 10
2766: PUSH
2767: EMPTY
2768: LIST
2769: LIST
2770: ST_TO_ADDR
// hc_skills = [ skil , skil , skil , skil ] ;
2771: LD_ADDR_OWVAR 31
2775: PUSH
2776: LD_VAR 0 8
2780: PUSH
2781: LD_VAR 0 8
2785: PUSH
2786: LD_VAR 0 8
2790: PUSH
2791: LD_VAR 0 8
2795: PUSH
2796: EMPTY
2797: LIST
2798: LIST
2799: LIST
2800: LIST
2801: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2802: LD_ADDR_OWVAR 27
2806: PUSH
2807: LD_INT 1
2809: PPUSH
2810: LD_INT 2
2812: PPUSH
2813: CALL_OW 12
2817: ST_TO_ADDR
// hc_class = 1 ;
2818: LD_ADDR_OWVAR 28
2822: PUSH
2823: LD_INT 1
2825: ST_TO_ADDR
// un = CreateHuman ;
2826: LD_ADDR_VAR 0 15
2830: PUSH
2831: CALL_OW 44
2835: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
2836: LD_VAR 0 15
2840: PPUSH
2841: LD_VAR 0 9
2845: PPUSH
2846: LD_INT 0
2848: PPUSH
2849: CALL_OW 49
// end ;
2853: GO 2717
2855: POP
2856: POP
// for i = 1 to sniperCount do
2857: LD_ADDR_VAR 0 13
2861: PUSH
2862: DOUBLE
2863: LD_INT 1
2865: DEC
2866: ST_TO_ADDR
2867: LD_VAR 0 4
2871: PUSH
2872: FOR_TO
2873: IFFALSE 3010
// begin uc_side = side ;
2875: LD_ADDR_OWVAR 20
2879: PUSH
2880: LD_VAR 0 1
2884: ST_TO_ADDR
// uc_nation = nation ;
2885: LD_ADDR_OWVAR 21
2889: PUSH
2890: LD_VAR 0 2
2894: ST_TO_ADDR
// hc_name =  ;
2895: LD_ADDR_OWVAR 26
2899: PUSH
2900: LD_STRING 
2902: ST_TO_ADDR
// hc_gallery =  ;
2903: LD_ADDR_OWVAR 33
2907: PUSH
2908: LD_STRING 
2910: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
2911: LD_ADDR_OWVAR 29
2915: PUSH
2916: LD_INT 10
2918: PUSH
2919: LD_INT 10
2921: PUSH
2922: EMPTY
2923: LIST
2924: LIST
2925: ST_TO_ADDR
// hc_skills = [ skil , skil , skil , skil ] ;
2926: LD_ADDR_OWVAR 31
2930: PUSH
2931: LD_VAR 0 8
2935: PUSH
2936: LD_VAR 0 8
2940: PUSH
2941: LD_VAR 0 8
2945: PUSH
2946: LD_VAR 0 8
2950: PUSH
2951: EMPTY
2952: LIST
2953: LIST
2954: LIST
2955: LIST
2956: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2957: LD_ADDR_OWVAR 27
2961: PUSH
2962: LD_INT 1
2964: PPUSH
2965: LD_INT 2
2967: PPUSH
2968: CALL_OW 12
2972: ST_TO_ADDR
// hc_class = 5 ;
2973: LD_ADDR_OWVAR 28
2977: PUSH
2978: LD_INT 5
2980: ST_TO_ADDR
// un = CreateHuman ;
2981: LD_ADDR_VAR 0 15
2985: PUSH
2986: CALL_OW 44
2990: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
2991: LD_VAR 0 15
2995: PPUSH
2996: LD_VAR 0 9
3000: PPUSH
3001: LD_INT 0
3003: PPUSH
3004: CALL_OW 49
// end ;
3008: GO 2872
3010: POP
3011: POP
// for i = 1 to bazookCount do
3012: LD_ADDR_VAR 0 13
3016: PUSH
3017: DOUBLE
3018: LD_INT 1
3020: DEC
3021: ST_TO_ADDR
3022: LD_VAR 0 5
3026: PUSH
3027: FOR_TO
3028: IFFALSE 3165
// begin uc_side = side ;
3030: LD_ADDR_OWVAR 20
3034: PUSH
3035: LD_VAR 0 1
3039: ST_TO_ADDR
// uc_nation = nation ;
3040: LD_ADDR_OWVAR 21
3044: PUSH
3045: LD_VAR 0 2
3049: ST_TO_ADDR
// hc_name =  ;
3050: LD_ADDR_OWVAR 26
3054: PUSH
3055: LD_STRING 
3057: ST_TO_ADDR
// hc_gallery =  ;
3058: LD_ADDR_OWVAR 33
3062: PUSH
3063: LD_STRING 
3065: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
3066: LD_ADDR_OWVAR 29
3070: PUSH
3071: LD_INT 10
3073: PUSH
3074: LD_INT 10
3076: PUSH
3077: EMPTY
3078: LIST
3079: LIST
3080: ST_TO_ADDR
// hc_skills = [ skil , skil , skil , skil ] ;
3081: LD_ADDR_OWVAR 31
3085: PUSH
3086: LD_VAR 0 8
3090: PUSH
3091: LD_VAR 0 8
3095: PUSH
3096: LD_VAR 0 8
3100: PUSH
3101: LD_VAR 0 8
3105: PUSH
3106: EMPTY
3107: LIST
3108: LIST
3109: LIST
3110: LIST
3111: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3112: LD_ADDR_OWVAR 27
3116: PUSH
3117: LD_INT 1
3119: PPUSH
3120: LD_INT 2
3122: PPUSH
3123: CALL_OW 12
3127: ST_TO_ADDR
// hc_class = 9 ;
3128: LD_ADDR_OWVAR 28
3132: PUSH
3133: LD_INT 9
3135: ST_TO_ADDR
// un = CreateHuman ;
3136: LD_ADDR_VAR 0 15
3140: PUSH
3141: CALL_OW 44
3145: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
3146: LD_VAR 0 15
3150: PPUSH
3151: LD_VAR 0 9
3155: PPUSH
3156: LD_INT 0
3158: PPUSH
3159: CALL_OW 49
// end ;
3163: GO 3027
3165: POP
3166: POP
// for i = 1 to mortalCount do
3167: LD_ADDR_VAR 0 13
3171: PUSH
3172: DOUBLE
3173: LD_INT 1
3175: DEC
3176: ST_TO_ADDR
3177: LD_VAR 0 6
3181: PUSH
3182: FOR_TO
3183: IFFALSE 3320
// begin uc_side = side ;
3185: LD_ADDR_OWVAR 20
3189: PUSH
3190: LD_VAR 0 1
3194: ST_TO_ADDR
// uc_nation = nation ;
3195: LD_ADDR_OWVAR 21
3199: PUSH
3200: LD_VAR 0 2
3204: ST_TO_ADDR
// hc_name =  ;
3205: LD_ADDR_OWVAR 26
3209: PUSH
3210: LD_STRING 
3212: ST_TO_ADDR
// hc_gallery =  ;
3213: LD_ADDR_OWVAR 33
3217: PUSH
3218: LD_STRING 
3220: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
3221: LD_ADDR_OWVAR 29
3225: PUSH
3226: LD_INT 10
3228: PUSH
3229: LD_INT 10
3231: PUSH
3232: EMPTY
3233: LIST
3234: LIST
3235: ST_TO_ADDR
// hc_skills = [ skil , skil , skil , skil ] ;
3236: LD_ADDR_OWVAR 31
3240: PUSH
3241: LD_VAR 0 8
3245: PUSH
3246: LD_VAR 0 8
3250: PUSH
3251: LD_VAR 0 8
3255: PUSH
3256: LD_VAR 0 8
3260: PUSH
3261: EMPTY
3262: LIST
3263: LIST
3264: LIST
3265: LIST
3266: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3267: LD_ADDR_OWVAR 27
3271: PUSH
3272: LD_INT 1
3274: PPUSH
3275: LD_INT 2
3277: PPUSH
3278: CALL_OW 12
3282: ST_TO_ADDR
// hc_class = 8 ;
3283: LD_ADDR_OWVAR 28
3287: PUSH
3288: LD_INT 8
3290: ST_TO_ADDR
// un = CreateHuman ;
3291: LD_ADDR_VAR 0 15
3295: PUSH
3296: CALL_OW 44
3300: ST_TO_ADDR
// PlaceUnitArea ( un , spawnArea , false ) ;
3301: LD_VAR 0 15
3305: PPUSH
3306: LD_VAR 0 9
3310: PPUSH
3311: LD_INT 0
3313: PPUSH
3314: CALL_OW 49
// end ;
3318: GO 3182
3320: POP
3321: POP
// repeat wait ( 0 0$3 ) ;
3322: LD_INT 105
3324: PPUSH
3325: CALL_OW 67
// for i in FilterAllUnits ( [ [ f_side , side ] , [ f_or , [ f_class , 1 ] , [ f_class , 5 ] , [ f_class , 8 ] , [ f_class , 9 ] ] , [ f_ok ] ] ) do
3329: LD_ADDR_VAR 0 13
3333: PUSH
3334: LD_INT 22
3336: PUSH
3337: LD_VAR 0 1
3341: PUSH
3342: EMPTY
3343: LIST
3344: LIST
3345: PUSH
3346: LD_INT 2
3348: PUSH
3349: LD_INT 25
3351: PUSH
3352: LD_INT 1
3354: PUSH
3355: EMPTY
3356: LIST
3357: LIST
3358: PUSH
3359: LD_INT 25
3361: PUSH
3362: LD_INT 5
3364: PUSH
3365: EMPTY
3366: LIST
3367: LIST
3368: PUSH
3369: LD_INT 25
3371: PUSH
3372: LD_INT 8
3374: PUSH
3375: EMPTY
3376: LIST
3377: LIST
3378: PUSH
3379: LD_INT 25
3381: PUSH
3382: LD_INT 9
3384: PUSH
3385: EMPTY
3386: LIST
3387: LIST
3388: PUSH
3389: EMPTY
3390: LIST
3391: LIST
3392: LIST
3393: LIST
3394: LIST
3395: PUSH
3396: LD_INT 50
3398: PUSH
3399: EMPTY
3400: LIST
3401: PUSH
3402: EMPTY
3403: LIST
3404: LIST
3405: LIST
3406: PPUSH
3407: CALL_OW 69
3411: PUSH
3412: FOR_IN
3413: IFFALSE 3589
// begin target1 := NearestUnitToUnit ( FilterAllUnits ( [ f_enemy , side ] ) , i ) ;
3415: LD_ADDR_VAR 0 21
3419: PUSH
3420: LD_INT 81
3422: PUSH
3423: LD_VAR 0 1
3427: PUSH
3428: EMPTY
3429: LIST
3430: LIST
3431: PPUSH
3432: CALL_OW 69
3436: PPUSH
3437: LD_VAR 0 13
3441: PPUSH
3442: CALL_OW 74
3446: ST_TO_ADDR
// target2 := NearestUnitToUnit ( FilterAllUnits ( [ [ [ f_enemy , side ] , [ f_or , [ f_occupied ] , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ] ) , i ) ;
3447: LD_ADDR_VAR 0 22
3451: PUSH
3452: LD_INT 81
3454: PUSH
3455: LD_VAR 0 1
3459: PUSH
3460: EMPTY
3461: LIST
3462: LIST
3463: PUSH
3464: LD_INT 2
3466: PUSH
3467: LD_INT 59
3469: PUSH
3470: EMPTY
3471: LIST
3472: PUSH
3473: LD_INT 21
3475: PUSH
3476: LD_INT 1
3478: PUSH
3479: EMPTY
3480: LIST
3481: LIST
3482: PUSH
3483: LD_INT 21
3485: PUSH
3486: LD_INT 2
3488: PUSH
3489: EMPTY
3490: LIST
3491: LIST
3492: PUSH
3493: EMPTY
3494: LIST
3495: LIST
3496: LIST
3497: LIST
3498: PUSH
3499: EMPTY
3500: LIST
3501: LIST
3502: PUSH
3503: EMPTY
3504: LIST
3505: PPUSH
3506: CALL_OW 69
3510: PPUSH
3511: LD_VAR 0 13
3515: PPUSH
3516: CALL_OW 74
3520: ST_TO_ADDR
// if GetDistUnits ( i , target1 ) + 8 < GetDistUnits ( i , target2 ) then
3521: LD_VAR 0 13
3525: PPUSH
3526: LD_VAR 0 21
3530: PPUSH
3531: CALL_OW 296
3535: PUSH
3536: LD_INT 8
3538: PLUS
3539: PUSH
3540: LD_VAR 0 13
3544: PPUSH
3545: LD_VAR 0 22
3549: PPUSH
3550: CALL_OW 296
3554: LESS
3555: IFFALSE 3573
// begin ComAttackUnit ( i , target1 ) ;
3557: LD_VAR 0 13
3561: PPUSH
3562: LD_VAR 0 21
3566: PPUSH
3567: CALL_OW 115
// end else
3571: GO 3587
// begin ComAttackUnit ( i , target2 ) ;
3573: LD_VAR 0 13
3577: PPUSH
3578: LD_VAR 0 22
3582: PPUSH
3583: CALL_OW 115
// end ; end ;
3587: GO 3412
3589: POP
3590: POP
// until FilterAllUnits ( [ [ f_side , side ] , [ f_or , [ f_class , 1 ] , [ f_class , 5 ] , [ f_class , 8 ] , [ f_class , 9 ] ] , [ f_ok ] ] ) = 0 ;
3591: LD_INT 22
3593: PUSH
3594: LD_VAR 0 1
3598: PUSH
3599: EMPTY
3600: LIST
3601: LIST
3602: PUSH
3603: LD_INT 2
3605: PUSH
3606: LD_INT 25
3608: PUSH
3609: LD_INT 1
3611: PUSH
3612: EMPTY
3613: LIST
3614: LIST
3615: PUSH
3616: LD_INT 25
3618: PUSH
3619: LD_INT 5
3621: PUSH
3622: EMPTY
3623: LIST
3624: LIST
3625: PUSH
3626: LD_INT 25
3628: PUSH
3629: LD_INT 8
3631: PUSH
3632: EMPTY
3633: LIST
3634: LIST
3635: PUSH
3636: LD_INT 25
3638: PUSH
3639: LD_INT 9
3641: PUSH
3642: EMPTY
3643: LIST
3644: LIST
3645: PUSH
3646: EMPTY
3647: LIST
3648: LIST
3649: LIST
3650: LIST
3651: LIST
3652: PUSH
3653: LD_INT 50
3655: PUSH
3656: EMPTY
3657: LIST
3658: PUSH
3659: EMPTY
3660: LIST
3661: LIST
3662: LIST
3663: PPUSH
3664: CALL_OW 69
3668: PUSH
3669: LD_INT 0
3671: EQUAL
3672: IFFALSE 3322
// end ;
3674: LD_VAR 0 12
3678: RET
// export function LoadGameOptions ; var i ; begin
3679: LD_INT 0
3681: PPUSH
3682: PPUSH
// if Multiplayer then
3683: LD_OWVAR 4
3687: IFFALSE 3741
// begin Your_Side := mp_player_side ;
3689: LD_ADDR_OWVAR 2
3693: PUSH
3694: LD_OWVAR 7
3698: ST_TO_ADDR
// Side_Positions := mp_sides_positions ;
3699: LD_ADDR_EXP 1
3703: PUSH
3704: LD_OWVAR 17
3708: ST_TO_ADDR
// Side_Teams := mp_sides_teams ;
3709: LD_ADDR_EXP 2
3713: PUSH
3714: LD_OWVAR 15
3718: ST_TO_ADDR
// Side_Nations := mp_sides_nations ;
3719: LD_ADDR_EXP 3
3723: PUSH
3724: LD_OWVAR 16
3728: ST_TO_ADDR
// Teams := mp_teams ;
3729: LD_ADDR_EXP 4
3733: PUSH
3734: LD_OWVAR 12
3738: ST_TO_ADDR
// end else
3739: GO 3912
// begin Your_Side := 1 ;
3741: LD_ADDR_OWVAR 2
3745: PUSH
3746: LD_INT 1
3748: ST_TO_ADDR
// Side_Positions := [ 1 , 2 , 0 , 0 , 0 , 0 , 0 , 0 ] ;
3749: LD_ADDR_EXP 1
3753: PUSH
3754: LD_INT 1
3756: PUSH
3757: LD_INT 2
3759: PUSH
3760: LD_INT 0
3762: PUSH
3763: LD_INT 0
3765: PUSH
3766: LD_INT 0
3768: PUSH
3769: LD_INT 0
3771: PUSH
3772: LD_INT 0
3774: PUSH
3775: LD_INT 0
3777: PUSH
3778: EMPTY
3779: LIST
3780: LIST
3781: LIST
3782: LIST
3783: LIST
3784: LIST
3785: LIST
3786: LIST
3787: ST_TO_ADDR
// Side_Teams := [ 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ] ;
3788: LD_ADDR_EXP 2
3792: PUSH
3793: LD_INT 1
3795: PUSH
3796: LD_INT 1
3798: PUSH
3799: LD_INT 0
3801: PUSH
3802: LD_INT 0
3804: PUSH
3805: LD_INT 0
3807: PUSH
3808: LD_INT 0
3810: PUSH
3811: LD_INT 0
3813: PUSH
3814: LD_INT 0
3816: PUSH
3817: EMPTY
3818: LIST
3819: LIST
3820: LIST
3821: LIST
3822: LIST
3823: LIST
3824: LIST
3825: LIST
3826: ST_TO_ADDR
// Side_Nations := [ 1 , 2 , 0 , 0 , 0 , 0 , 0 , 0 ] ;
3827: LD_ADDR_EXP 3
3831: PUSH
3832: LD_INT 1
3834: PUSH
3835: LD_INT 2
3837: PUSH
3838: LD_INT 0
3840: PUSH
3841: LD_INT 0
3843: PUSH
3844: LD_INT 0
3846: PUSH
3847: LD_INT 0
3849: PUSH
3850: LD_INT 0
3852: PUSH
3853: LD_INT 0
3855: PUSH
3856: EMPTY
3857: LIST
3858: LIST
3859: LIST
3860: LIST
3861: LIST
3862: LIST
3863: LIST
3864: LIST
3865: ST_TO_ADDR
// Teams := [ [ 1 , 2 ] , [ 3 ] , [ 4 ] , [ 5 ] , [ 6 ] ] ;
3866: LD_ADDR_EXP 4
3870: PUSH
3871: LD_INT 1
3873: PUSH
3874: LD_INT 2
3876: PUSH
3877: EMPTY
3878: LIST
3879: LIST
3880: PUSH
3881: LD_INT 3
3883: PUSH
3884: EMPTY
3885: LIST
3886: PUSH
3887: LD_INT 4
3889: PUSH
3890: EMPTY
3891: LIST
3892: PUSH
3893: LD_INT 5
3895: PUSH
3896: EMPTY
3897: LIST
3898: PUSH
3899: LD_INT 6
3901: PUSH
3902: EMPTY
3903: LIST
3904: PUSH
3905: EMPTY
3906: LIST
3907: LIST
3908: LIST
3909: LIST
3910: LIST
3911: ST_TO_ADDR
// end ; Position_Sides := [ 0 , 0 , 0 , 0 , 0 , 0 ] ;
3912: LD_ADDR_EXP 6
3916: PUSH
3917: LD_INT 0
3919: PUSH
3920: LD_INT 0
3922: PUSH
3923: LD_INT 0
3925: PUSH
3926: LD_INT 0
3928: PUSH
3929: LD_INT 0
3931: PUSH
3932: LD_INT 0
3934: PUSH
3935: EMPTY
3936: LIST
3937: LIST
3938: LIST
3939: LIST
3940: LIST
3941: LIST
3942: ST_TO_ADDR
// for i := 1 to 8 do
3943: LD_ADDR_VAR 0 2
3947: PUSH
3948: DOUBLE
3949: LD_INT 1
3951: DEC
3952: ST_TO_ADDR
3953: LD_INT 8
3955: PUSH
3956: FOR_TO
3957: IFFALSE 4004
// if Side_Positions [ i ] then
3959: LD_EXP 1
3963: PUSH
3964: LD_VAR 0 2
3968: ARRAY
3969: IFFALSE 4002
// Position_Sides := Replace ( Position_Sides , Side_Positions [ i ] , i ) ;
3971: LD_ADDR_EXP 6
3975: PUSH
3976: LD_EXP 6
3980: PPUSH
3981: LD_EXP 1
3985: PUSH
3986: LD_VAR 0 2
3990: ARRAY
3991: PPUSH
3992: LD_VAR 0 2
3996: PPUSH
3997: CALL_OW 1
4001: ST_TO_ADDR
4002: GO 3956
4004: POP
4005: POP
// Team_Game := Side_Teams [ your_side ] ;
4006: LD_ADDR_EXP 5
4010: PUSH
4011: LD_EXP 2
4015: PUSH
4016: LD_OWVAR 2
4020: ARRAY
4021: ST_TO_ADDR
// if Multiplayer then
4022: LD_OWVAR 4
4026: IFFALSE 4121
// begin def_base_level = GetMultiplayerSetting ( 0 ) ;
4028: LD_ADDR_EXP 7
4032: PUSH
4033: LD_INT 0
4035: PPUSH
4036: CALL_OW 426
4040: ST_TO_ADDR
// def_amount_of_people := GetMultiplayerSetting ( 1 ) ;
4041: LD_ADDR_EXP 8
4045: PUSH
4046: LD_INT 1
4048: PPUSH
4049: CALL_OW 426
4053: ST_TO_ADDR
// def_skill_level := GetMultiplayerSetting ( 2 ) ;
4054: LD_ADDR_EXP 9
4058: PUSH
4059: LD_INT 2
4061: PPUSH
4062: CALL_OW 426
4066: ST_TO_ADDR
// def_difficulty_level := GetMultiplayerSetting ( 3 ) ;
4067: LD_ADDR_EXP 11
4071: PUSH
4072: LD_INT 3
4074: PPUSH
4075: CALL_OW 426
4079: ST_TO_ADDR
// def_shipments_density := GetMultiplayerSetting ( 4 ) ;
4080: LD_ADDR_EXP 12
4084: PUSH
4085: LD_INT 4
4087: PPUSH
4088: CALL_OW 426
4092: ST_TO_ADDR
// def_people_respawning := GetMultiplayerSetting ( 5 ) ;
4093: LD_ADDR_EXP 13
4097: PUSH
4098: LD_INT 5
4100: PPUSH
4101: CALL_OW 426
4105: ST_TO_ADDR
// def_amount_of_apemen := GetMultiplayerSetting ( 6 ) ;
4106: LD_ADDR_EXP 14
4110: PUSH
4111: LD_INT 6
4113: PPUSH
4114: CALL_OW 426
4118: ST_TO_ADDR
// end else
4119: GO 4181
// begin Randomize ;
4121: CALL_OW 10
// def_base_level = 2 ;
4125: LD_ADDR_EXP 7
4129: PUSH
4130: LD_INT 2
4132: ST_TO_ADDR
// def_amount_of_people := 2 ;
4133: LD_ADDR_EXP 8
4137: PUSH
4138: LD_INT 2
4140: ST_TO_ADDR
// def_skill_level := 3 ;
4141: LD_ADDR_EXP 9
4145: PUSH
4146: LD_INT 3
4148: ST_TO_ADDR
// def_difficulty_level := 3 ;
4149: LD_ADDR_EXP 11
4153: PUSH
4154: LD_INT 3
4156: ST_TO_ADDR
// def_shipments_density := 2 ;
4157: LD_ADDR_EXP 12
4161: PUSH
4162: LD_INT 2
4164: ST_TO_ADDR
// def_people_respawning := 1 ;
4165: LD_ADDR_EXP 13
4169: PUSH
4170: LD_INT 1
4172: ST_TO_ADDR
// def_amount_of_apemen := 3 ;
4173: LD_ADDR_EXP 14
4177: PUSH
4178: LD_INT 3
4180: ST_TO_ADDR
// end ; is_depot := [ 0 , 1 , 1 ] [ def_base_level + 1 ] ;
4181: LD_ADDR_EXP 15
4185: PUSH
4186: LD_INT 0
4188: PUSH
4189: LD_INT 1
4191: PUSH
4192: LD_INT 1
4194: PUSH
4195: EMPTY
4196: LIST
4197: LIST
4198: LIST
4199: PUSH
4200: LD_EXP 7
4204: PUSH
4205: LD_INT 1
4207: PLUS
4208: ARRAY
4209: ST_TO_ADDR
// number_of_breastworks := [ 0 , 0 , 2 ] [ def_base_level + 1 ] ;
4210: LD_ADDR_EXP 16
4214: PUSH
4215: LD_INT 0
4217: PUSH
4218: LD_INT 0
4220: PUSH
4221: LD_INT 2
4223: PUSH
4224: EMPTY
4225: LIST
4226: LIST
4227: LIST
4228: PUSH
4229: LD_EXP 7
4233: PUSH
4234: LD_INT 1
4236: PLUS
4237: ARRAY
4238: ST_TO_ADDR
// number_of_people := [ 9 , 12 , 15 , 24 ] [ def_amount_of_people + 1 ] ;
4239: LD_ADDR_EXP 17
4243: PUSH
4244: LD_INT 9
4246: PUSH
4247: LD_INT 12
4249: PUSH
4250: LD_INT 15
4252: PUSH
4253: LD_INT 24
4255: PUSH
4256: EMPTY
4257: LIST
4258: LIST
4259: LIST
4260: LIST
4261: PUSH
4262: LD_EXP 8
4266: PUSH
4267: LD_INT 1
4269: PLUS
4270: ARRAY
4271: ST_TO_ADDR
// skill_level := [ 3 , 5 , 6 , 7 ] [ def_skill_level + 1 ] ;
4272: LD_ADDR_EXP 18
4276: PUSH
4277: LD_INT 3
4279: PUSH
4280: LD_INT 5
4282: PUSH
4283: LD_INT 6
4285: PUSH
4286: LD_INT 7
4288: PUSH
4289: EMPTY
4290: LIST
4291: LIST
4292: LIST
4293: LIST
4294: PUSH
4295: LD_EXP 9
4299: PUSH
4300: LD_INT 1
4302: PLUS
4303: ARRAY
4304: ST_TO_ADDR
// starting_resources := [ [ 0 , 0 , 0 ] , [ 30 , 0 , 0 ] , [ 50 , 20 , 0 ] , [ 80 , 40 , 20 ] ] [ def_starting_resources + 1 ] ;
4305: LD_ADDR_EXP 19
4309: PUSH
4310: LD_INT 0
4312: PUSH
4313: LD_INT 0
4315: PUSH
4316: LD_INT 0
4318: PUSH
4319: EMPTY
4320: LIST
4321: LIST
4322: LIST
4323: PUSH
4324: LD_INT 30
4326: PUSH
4327: LD_INT 0
4329: PUSH
4330: LD_INT 0
4332: PUSH
4333: EMPTY
4334: LIST
4335: LIST
4336: LIST
4337: PUSH
4338: LD_INT 50
4340: PUSH
4341: LD_INT 20
4343: PUSH
4344: LD_INT 0
4346: PUSH
4347: EMPTY
4348: LIST
4349: LIST
4350: LIST
4351: PUSH
4352: LD_INT 80
4354: PUSH
4355: LD_INT 40
4357: PUSH
4358: LD_INT 20
4360: PUSH
4361: EMPTY
4362: LIST
4363: LIST
4364: LIST
4365: PUSH
4366: EMPTY
4367: LIST
4368: LIST
4369: LIST
4370: LIST
4371: PUSH
4372: LD_EXP 10
4376: PUSH
4377: LD_INT 1
4379: PLUS
4380: ARRAY
4381: ST_TO_ADDR
// starting_crates := [ [ 10 ] , [ 7 , 14 ] , [ 6 , 12 , 18 ] , [ 5 , 10 , 15 , 20 ] ] [ def_starting_resources + 1 ] ;
4382: LD_ADDR_EXP 20
4386: PUSH
4387: LD_INT 10
4389: PUSH
4390: EMPTY
4391: LIST
4392: PUSH
4393: LD_INT 7
4395: PUSH
4396: LD_INT 14
4398: PUSH
4399: EMPTY
4400: LIST
4401: LIST
4402: PUSH
4403: LD_INT 6
4405: PUSH
4406: LD_INT 12
4408: PUSH
4409: LD_INT 18
4411: PUSH
4412: EMPTY
4413: LIST
4414: LIST
4415: LIST
4416: PUSH
4417: LD_INT 5
4419: PUSH
4420: LD_INT 10
4422: PUSH
4423: LD_INT 15
4425: PUSH
4426: LD_INT 20
4428: PUSH
4429: EMPTY
4430: LIST
4431: LIST
4432: LIST
4433: LIST
4434: PUSH
4435: EMPTY
4436: LIST
4437: LIST
4438: LIST
4439: LIST
4440: PUSH
4441: LD_EXP 10
4445: PUSH
4446: LD_INT 1
4448: PLUS
4449: ARRAY
4450: ST_TO_ADDR
// difficulty_level := [ 4 , 6 , 8 , 10 ] [ def_difficulty_level + 1 ] ;
4451: LD_ADDR_EXP 21
4455: PUSH
4456: LD_INT 4
4458: PUSH
4459: LD_INT 6
4461: PUSH
4462: LD_INT 8
4464: PUSH
4465: LD_INT 10
4467: PUSH
4468: EMPTY
4469: LIST
4470: LIST
4471: LIST
4472: LIST
4473: PUSH
4474: LD_EXP 11
4478: PUSH
4479: LD_INT 1
4481: PLUS
4482: ARRAY
4483: ST_TO_ADDR
// respawning_time_min := [ 0 0$0 , 5 5$00 , 3 3$0 ] [ def_people_respawning + 1 ] ;
4484: LD_ADDR_EXP 22
4488: PUSH
4489: LD_INT 0
4491: PUSH
4492: LD_INT 10500
4494: PUSH
4495: LD_INT 6300
4497: PUSH
4498: EMPTY
4499: LIST
4500: LIST
4501: LIST
4502: PUSH
4503: LD_EXP 13
4507: PUSH
4508: LD_INT 1
4510: PLUS
4511: ARRAY
4512: ST_TO_ADDR
// respawning_time_max := [ 0 0$0 , 15 15$00 , 5 5$0 ] [ def_people_respawning + 1 ] ;
4513: LD_ADDR_EXP 23
4517: PUSH
4518: LD_INT 0
4520: PUSH
4521: LD_INT 31500
4523: PUSH
4524: LD_INT 10500
4526: PUSH
4527: EMPTY
4528: LIST
4529: LIST
4530: LIST
4531: PUSH
4532: LD_EXP 13
4536: PUSH
4537: LD_INT 1
4539: PLUS
4540: ARRAY
4541: ST_TO_ADDR
// amount_of_apemen := [ 0 , 3 , 6 , 9 ] [ def_amount_of_apemen + 1 ] ;
4542: LD_ADDR_EXP 24
4546: PUSH
4547: LD_INT 0
4549: PUSH
4550: LD_INT 3
4552: PUSH
4553: LD_INT 6
4555: PUSH
4556: LD_INT 9
4558: PUSH
4559: EMPTY
4560: LIST
4561: LIST
4562: LIST
4563: LIST
4564: PUSH
4565: LD_EXP 14
4569: PUSH
4570: LD_INT 1
4572: PLUS
4573: ARRAY
4574: ST_TO_ADDR
// shipments_density := [ 150 , 125 , 100 , 50 ] [ def_shipments_density + 1 ] ;
4575: LD_ADDR_EXP 25
4579: PUSH
4580: LD_INT 150
4582: PUSH
4583: LD_INT 125
4585: PUSH
4586: LD_INT 100
4588: PUSH
4589: LD_INT 50
4591: PUSH
4592: EMPTY
4593: LIST
4594: LIST
4595: LIST
4596: LIST
4597: PUSH
4598: LD_EXP 12
4602: PUSH
4603: LD_INT 1
4605: PLUS
4606: ARRAY
4607: ST_TO_ADDR
// shared_vision := 1 ;
4608: LD_ADDR_EXP 26
4612: PUSH
4613: LD_INT 1
4615: ST_TO_ADDR
// end ;
4616: LD_VAR 0 1
4620: RET
// export function InitMap ; var i , j ; begin
4621: LD_INT 0
4623: PPUSH
4624: PPUSH
4625: PPUSH
// normal_oil_deposits_locations := [ [ 105 , 82 ] , [ 100 , 80 ] ] ;
4626: LD_ADDR_EXP 31
4630: PUSH
4631: LD_INT 105
4633: PUSH
4634: LD_INT 82
4636: PUSH
4637: EMPTY
4638: LIST
4639: LIST
4640: PUSH
4641: LD_INT 100
4643: PUSH
4644: LD_INT 80
4646: PUSH
4647: EMPTY
4648: LIST
4649: LIST
4650: PUSH
4651: EMPTY
4652: LIST
4653: LIST
4654: ST_TO_ADDR
// normal_sib_deposits_locations := [ [ 88 , 88 ] , [ 102 , 68 ] ] ;
4655: LD_ADDR_EXP 32
4659: PUSH
4660: LD_INT 88
4662: PUSH
4663: LD_INT 88
4665: PUSH
4666: EMPTY
4667: LIST
4668: LIST
4669: PUSH
4670: LD_INT 102
4672: PUSH
4673: LD_INT 68
4675: PUSH
4676: EMPTY
4677: LIST
4678: LIST
4679: PUSH
4680: EMPTY
4681: LIST
4682: LIST
4683: ST_TO_ADDR
// depot_def := [ [ 88 , 62 , 2 ] , [ 81 , 67 , 2 ] ] ;
4684: LD_ADDR_EXP 33
4688: PUSH
4689: LD_INT 88
4691: PUSH
4692: LD_INT 62
4694: PUSH
4695: LD_INT 2
4697: PUSH
4698: EMPTY
4699: LIST
4700: LIST
4701: LIST
4702: PUSH
4703: LD_INT 81
4705: PUSH
4706: LD_INT 67
4708: PUSH
4709: LD_INT 2
4711: PUSH
4712: EMPTY
4713: LIST
4714: LIST
4715: LIST
4716: PUSH
4717: EMPTY
4718: LIST
4719: LIST
4720: ST_TO_ADDR
// for i in depot_def do
4721: LD_ADDR_VAR 0 2
4725: PUSH
4726: LD_EXP 33
4730: PUSH
4731: FOR_IN
4732: IFFALSE 4806
// start_def := start_def ^ [ [ ShiftX ( i [ 1 ] , i [ 3 ] , 10 ) , ShiftY ( i [ 2 ] , i [ 3 ] , 10 ) ] ] ;
4734: LD_ADDR_EXP 34
4738: PUSH
4739: LD_EXP 34
4743: PUSH
4744: LD_VAR 0 2
4748: PUSH
4749: LD_INT 1
4751: ARRAY
4752: PPUSH
4753: LD_VAR 0 2
4757: PUSH
4758: LD_INT 3
4760: ARRAY
4761: PPUSH
4762: LD_INT 10
4764: PPUSH
4765: CALL_OW 272
4769: PUSH
4770: LD_VAR 0 2
4774: PUSH
4775: LD_INT 2
4777: ARRAY
4778: PPUSH
4779: LD_VAR 0 2
4783: PUSH
4784: LD_INT 3
4786: ARRAY
4787: PPUSH
4788: LD_INT 10
4790: PPUSH
4791: CALL_OW 273
4795: PUSH
4796: EMPTY
4797: LIST
4798: LIST
4799: PUSH
4800: EMPTY
4801: LIST
4802: ADD
4803: ST_TO_ADDR
4804: GO 4731
4806: POP
4807: POP
// breastworks_def := [ [ [ 97 , 58 , 4 ] , [ 106 , 66 , 3 ] ] , [ [ 80 , 78 , 1 ] , [ 82 , 85 , 1 ] ] ] ;
4808: LD_ADDR_EXP 35
4812: PUSH
4813: LD_INT 97
4815: PUSH
4816: LD_INT 58
4818: PUSH
4819: LD_INT 4
4821: PUSH
4822: EMPTY
4823: LIST
4824: LIST
4825: LIST
4826: PUSH
4827: LD_INT 106
4829: PUSH
4830: LD_INT 66
4832: PUSH
4833: LD_INT 3
4835: PUSH
4836: EMPTY
4837: LIST
4838: LIST
4839: LIST
4840: PUSH
4841: EMPTY
4842: LIST
4843: LIST
4844: PUSH
4845: LD_INT 80
4847: PUSH
4848: LD_INT 78
4850: PUSH
4851: LD_INT 1
4853: PUSH
4854: EMPTY
4855: LIST
4856: LIST
4857: LIST
4858: PUSH
4859: LD_INT 82
4861: PUSH
4862: LD_INT 85
4864: PUSH
4865: LD_INT 1
4867: PUSH
4868: EMPTY
4869: LIST
4870: LIST
4871: LIST
4872: PUSH
4873: EMPTY
4874: LIST
4875: LIST
4876: PUSH
4877: EMPTY
4878: LIST
4879: LIST
4880: ST_TO_ADDR
// for i = 1 to 2 do
4881: LD_ADDR_VAR 0 2
4885: PUSH
4886: DOUBLE
4887: LD_INT 1
4889: DEC
4890: ST_TO_ADDR
4891: LD_INT 2
4893: PUSH
4894: FOR_TO
4895: IFFALSE 4936
// CreateDepositXY ( normal_oil_deposits_locations [ i ] [ 1 ] , normal_oil_deposits_locations [ i ] [ 2 ] , mat_oil ) ;
4897: LD_EXP 31
4901: PUSH
4902: LD_VAR 0 2
4906: ARRAY
4907: PUSH
4908: LD_INT 1
4910: ARRAY
4911: PPUSH
4912: LD_EXP 31
4916: PUSH
4917: LD_VAR 0 2
4921: ARRAY
4922: PUSH
4923: LD_INT 2
4925: ARRAY
4926: PPUSH
4927: LD_INT 2
4929: PPUSH
4930: CALL_OW 62
4934: GO 4894
4936: POP
4937: POP
// for i = 1 to 2 do
4938: LD_ADDR_VAR 0 2
4942: PUSH
4943: DOUBLE
4944: LD_INT 1
4946: DEC
4947: ST_TO_ADDR
4948: LD_INT 2
4950: PUSH
4951: FOR_TO
4952: IFFALSE 4993
// CreateDepositXY ( normal_sib_deposits_locations [ i ] [ 1 ] , normal_sib_deposits_locations [ i ] [ 2 ] , mat_siberit ) ;
4954: LD_EXP 32
4958: PUSH
4959: LD_VAR 0 2
4963: ARRAY
4964: PUSH
4965: LD_INT 1
4967: ARRAY
4968: PPUSH
4969: LD_EXP 32
4973: PUSH
4974: LD_VAR 0 2
4978: ARRAY
4979: PUSH
4980: LD_INT 2
4982: ARRAY
4983: PPUSH
4984: LD_INT 3
4986: PPUSH
4987: CALL_OW 62
4991: GO 4951
4993: POP
4994: POP
// end ;
4995: LD_VAR 0 1
4999: RET
// export function SetVisionAndAtitude ; var i , j ; begin
5000: LD_INT 0
5002: PPUSH
5003: PPUSH
5004: PPUSH
// if not Team_Game then
5005: LD_EXP 5
5009: NOT
5010: IFFALSE 5108
// begin for i = 1 to 8 do
5012: LD_ADDR_VAR 0 2
5016: PUSH
5017: DOUBLE
5018: LD_INT 1
5020: DEC
5021: ST_TO_ADDR
5022: LD_INT 8
5024: PUSH
5025: FOR_TO
5026: IFFALSE 5104
// for j = 1 to 8 do
5028: LD_ADDR_VAR 0 3
5032: PUSH
5033: DOUBLE
5034: LD_INT 1
5036: DEC
5037: ST_TO_ADDR
5038: LD_INT 8
5040: PUSH
5041: FOR_TO
5042: IFFALSE 5100
// if i <> j then
5044: LD_VAR 0 2
5048: PUSH
5049: LD_VAR 0 3
5053: NONEQUAL
5054: IFFALSE 5078
// SetAttitude ( i , j , att_neutral , true ) else
5056: LD_VAR 0 2
5060: PPUSH
5061: LD_VAR 0 3
5065: PPUSH
5066: LD_INT 0
5068: PPUSH
5069: LD_INT 1
5071: PPUSH
5072: CALL_OW 80
5076: GO 5098
// SetAttitude ( i , j , att_friend , true ) ;
5078: LD_VAR 0 2
5082: PPUSH
5083: LD_VAR 0 3
5087: PPUSH
5088: LD_INT 1
5090: PPUSH
5091: LD_INT 1
5093: PPUSH
5094: CALL_OW 80
5098: GO 5041
5100: POP
5101: POP
5102: GO 5025
5104: POP
5105: POP
// end else
5106: GO 5283
// begin if shared_vision then
5108: LD_EXP 26
5112: IFFALSE 5177
// begin for i in Teams do
5114: LD_ADDR_VAR 0 2
5118: PUSH
5119: LD_EXP 4
5123: PUSH
5124: FOR_IN
5125: IFFALSE 5175
// for j = 2 to i do
5127: LD_ADDR_VAR 0 3
5131: PUSH
5132: DOUBLE
5133: LD_INT 2
5135: DEC
5136: ST_TO_ADDR
5137: LD_VAR 0 2
5141: PUSH
5142: FOR_TO
5143: IFFALSE 5171
// ChangeSideFog ( i [ j ] , i [ 1 ] ) ;
5145: LD_VAR 0 2
5149: PUSH
5150: LD_VAR 0 3
5154: ARRAY
5155: PPUSH
5156: LD_VAR 0 2
5160: PUSH
5161: LD_INT 1
5163: ARRAY
5164: PPUSH
5165: CALL_OW 343
5169: GO 5142
5171: POP
5172: POP
5173: GO 5124
5175: POP
5176: POP
// end ; for i = 1 to 8 do
5177: LD_ADDR_VAR 0 2
5181: PUSH
5182: DOUBLE
5183: LD_INT 1
5185: DEC
5186: ST_TO_ADDR
5187: LD_INT 8
5189: PUSH
5190: FOR_TO
5191: IFFALSE 5281
// for j = 1 to 8 do
5193: LD_ADDR_VAR 0 3
5197: PUSH
5198: DOUBLE
5199: LD_INT 1
5201: DEC
5202: ST_TO_ADDR
5203: LD_INT 8
5205: PUSH
5206: FOR_TO
5207: IFFALSE 5277
// if Side_Teams [ i ] = Side_Teams [ j ] then
5209: LD_EXP 2
5213: PUSH
5214: LD_VAR 0 2
5218: ARRAY
5219: PUSH
5220: LD_EXP 2
5224: PUSH
5225: LD_VAR 0 3
5229: ARRAY
5230: EQUAL
5231: IFFALSE 5255
// SetAttitude ( i , j , att_friend , true ) else
5233: LD_VAR 0 2
5237: PPUSH
5238: LD_VAR 0 3
5242: PPUSH
5243: LD_INT 1
5245: PPUSH
5246: LD_INT 1
5248: PPUSH
5249: CALL_OW 80
5253: GO 5275
// SetAttitude ( i , j , att_enemy , true ) ;
5255: LD_VAR 0 2
5259: PPUSH
5260: LD_VAR 0 3
5264: PPUSH
5265: LD_INT 2
5267: PPUSH
5268: LD_INT 1
5270: PPUSH
5271: CALL_OW 80
5275: GO 5206
5277: POP
5278: POP
5279: GO 5190
5281: POP
5282: POP
// end ; end ;
5283: LD_VAR 0 1
5287: RET
// export function prepare_people ( count , cl , x , y , r ) ; var i , j , un ; begin
5288: LD_INT 0
5290: PPUSH
5291: PPUSH
5292: PPUSH
5293: PPUSH
// result := [ ] ;
5294: LD_ADDR_VAR 0 6
5298: PUSH
5299: EMPTY
5300: ST_TO_ADDR
// for i := 1 to count do
5301: LD_ADDR_VAR 0 7
5305: PUSH
5306: DOUBLE
5307: LD_INT 1
5309: DEC
5310: ST_TO_ADDR
5311: LD_VAR 0 1
5315: PUSH
5316: FOR_TO
5317: IFFALSE 5713
// begin uc_direction := Rand ( 0 , 5 ) ;
5319: LD_ADDR_OWVAR 24
5323: PUSH
5324: LD_INT 0
5326: PPUSH
5327: LD_INT 5
5329: PPUSH
5330: CALL_OW 12
5334: ST_TO_ADDR
// if commander then
5335: LD_EXP 27
5339: IFFALSE 5448
// begin hc_name := mp_sides_players_names [ uc_side ] ;
5341: LD_ADDR_OWVAR 26
5345: PUSH
5346: LD_OWVAR 19
5350: PUSH
5351: LD_OWVAR 20
5355: ARRAY
5356: ST_TO_ADDR
// PrepareHuman ( Rand ( 1 , 2 ) , cl , skill_level + 2 ) ;
5357: LD_INT 1
5359: PPUSH
5360: LD_INT 2
5362: PPUSH
5363: CALL_OW 12
5367: PPUSH
5368: LD_VAR 0 2
5372: PPUSH
5373: LD_EXP 18
5377: PUSH
5378: LD_INT 2
5380: PLUS
5381: PPUSH
5382: CALL_OW 380
// hc_importance := 105 ;
5386: LD_ADDR_OWVAR 32
5390: PUSH
5391: LD_INT 105
5393: ST_TO_ADDR
// commander := false ;
5394: LD_ADDR_EXP 27
5398: PUSH
5399: LD_INT 0
5401: ST_TO_ADDR
// if Multiplayer then
5402: LD_OWVAR 4
5406: IFFALSE 5446
// begin hc_gallery := MULTIAVATARS ;
5408: LD_ADDR_OWVAR 33
5412: PUSH
5413: LD_STRING MULTIAVATARS
5415: ST_TO_ADDR
// hc_face_number := Multiplayer_GetPlayerSideNum ( uc_side ) ;
5416: LD_ADDR_OWVAR 34
5420: PUSH
5421: LD_OWVAR 20
5425: PPUSH
5426: CALL_OW 525
5430: ST_TO_ADDR
// hc_sex := Multiplayer_GetPlayerSex ( uc_side ) ;
5431: LD_ADDR_OWVAR 27
5435: PUSH
5436: LD_OWVAR 20
5440: PPUSH
5441: CALL_OW 526
5445: ST_TO_ADDR
// end ; end else
5446: GO 5511
// begin hc_name :=  ;
5448: LD_ADDR_OWVAR 26
5452: PUSH
5453: LD_STRING 
5455: ST_TO_ADDR
// PrepareHuman ( rand ( 1 , 2 ) , cl , skill_level ) ;
5456: LD_INT 1
5458: PPUSH
5459: LD_INT 2
5461: PPUSH
5462: CALL_OW 12
5466: PPUSH
5467: LD_VAR 0 2
5471: PPUSH
5472: LD_EXP 18
5476: PPUSH
5477: CALL_OW 380
// hc_importance := 0 ;
5481: LD_ADDR_OWVAR 32
5485: PUSH
5486: LD_INT 0
5488: ST_TO_ADDR
// if Multiplayer then
5489: LD_OWVAR 4
5493: IFFALSE 5511
// begin hc_gallery :=  ;
5495: LD_ADDR_OWVAR 33
5499: PUSH
5500: LD_STRING 
5502: ST_TO_ADDR
// hc_face_number := 0 ;
5503: LD_ADDR_OWVAR 34
5507: PUSH
5508: LD_INT 0
5510: ST_TO_ADDR
// end ; end ; un := CreateHuman ;
5511: LD_ADDR_VAR 0 9
5515: PUSH
5516: CALL_OW 44
5520: ST_TO_ADDR
// if global_defined then
5521: LD_EXP 28
5525: IFFALSE 5665
// begin if ( cl = class_soldier ) then
5527: LD_VAR 0 2
5531: PUSH
5532: LD_INT 1
5534: EQUAL
5535: IFFALSE 5555
// j := i + soldiers_created else
5537: LD_ADDR_VAR 0 8
5541: PUSH
5542: LD_VAR 0 7
5546: PUSH
5547: LD_EXP 30
5551: PLUS
5552: ST_TO_ADDR
5553: GO 5565
// j := i ;
5555: LD_ADDR_VAR 0 8
5559: PUSH
5560: LD_VAR 0 7
5564: ST_TO_ADDR
// CopySkills ( global_units [ cl ] [ j ] , un ) ;
5565: LD_EXP 29
5569: PUSH
5570: LD_VAR 0 2
5574: ARRAY
5575: PUSH
5576: LD_VAR 0 8
5580: ARRAY
5581: PPUSH
5582: LD_VAR 0 9
5586: PPUSH
5587: CALL_OW 510
// SetAttr ( un , attr_speed , GetAttr ( global_units [ cl ] [ j ] , attr_speed ) ) ;
5591: LD_VAR 0 9
5595: PPUSH
5596: LD_INT 2
5598: PPUSH
5599: LD_EXP 29
5603: PUSH
5604: LD_VAR 0 2
5608: ARRAY
5609: PUSH
5610: LD_VAR 0 8
5614: ARRAY
5615: PPUSH
5616: LD_INT 2
5618: PPUSH
5619: CALL_OW 260
5623: PPUSH
5624: CALL_OW 239
// SetAttr ( un , attr_stamina , GetAttr ( global_units [ cl ] [ j ] , attr_stamina ) ) ;
5628: LD_VAR 0 9
5632: PPUSH
5633: LD_INT 1
5635: PPUSH
5636: LD_EXP 29
5640: PUSH
5641: LD_VAR 0 2
5645: ARRAY
5646: PUSH
5647: LD_VAR 0 8
5651: ARRAY
5652: PPUSH
5653: LD_INT 1
5655: PPUSH
5656: CALL_OW 260
5660: PPUSH
5661: CALL_OW 239
// end ; PlaceUnitXYR ( un , x , y , r , false ) ;
5665: LD_VAR 0 9
5669: PPUSH
5670: LD_VAR 0 3
5674: PPUSH
5675: LD_VAR 0 4
5679: PPUSH
5680: LD_VAR 0 5
5684: PPUSH
5685: LD_INT 0
5687: PPUSH
5688: CALL_OW 50
// result := result ^ [ un ] ;
5692: LD_ADDR_VAR 0 6
5696: PUSH
5697: LD_VAR 0 6
5701: PUSH
5702: LD_VAR 0 9
5706: PUSH
5707: EMPTY
5708: LIST
5709: ADD
5710: ST_TO_ADDR
// end ;
5711: GO 5316
5713: POP
5714: POP
// if not global_defined then
5715: LD_EXP 28
5719: NOT
5720: IFFALSE 5798
// if ( global_units >= cl ) then
5722: LD_EXP 29
5726: PUSH
5727: LD_VAR 0 2
5731: GREATEREQUAL
5732: IFFALSE 5773
// global_units := Replace ( global_units , cl , global_units [ cl ] ^ result ) else
5734: LD_ADDR_EXP 29
5738: PUSH
5739: LD_EXP 29
5743: PPUSH
5744: LD_VAR 0 2
5748: PPUSH
5749: LD_EXP 29
5753: PUSH
5754: LD_VAR 0 2
5758: ARRAY
5759: PUSH
5760: LD_VAR 0 6
5764: ADD
5765: PPUSH
5766: CALL_OW 1
5770: ST_TO_ADDR
5771: GO 5798
// global_units := Replace ( global_units , cl , result ) ;
5773: LD_ADDR_EXP 29
5777: PUSH
5778: LD_EXP 29
5782: PPUSH
5783: LD_VAR 0 2
5787: PPUSH
5788: LD_VAR 0 6
5792: PPUSH
5793: CALL_OW 1
5797: ST_TO_ADDR
// end ;
5798: LD_VAR 0 6
5802: RET
// export function PreparePlayer ( side ) ; var pos , x , y , dir , i , r , sol , br , dep ; begin
5803: LD_INT 0
5805: PPUSH
5806: PPUSH
5807: PPUSH
5808: PPUSH
5809: PPUSH
5810: PPUSH
5811: PPUSH
5812: PPUSH
5813: PPUSH
5814: PPUSH
// pos := Side_Positions [ side ] ;
5815: LD_ADDR_VAR 0 3
5819: PUSH
5820: LD_EXP 1
5824: PUSH
5825: LD_VAR 0 1
5829: ARRAY
5830: ST_TO_ADDR
// uc_nation := Side_Nations [ side ] ;
5831: LD_ADDR_OWVAR 21
5835: PUSH
5836: LD_EXP 3
5840: PUSH
5841: LD_VAR 0 1
5845: ARRAY
5846: ST_TO_ADDR
// uc_side := side ;
5847: LD_ADDR_OWVAR 20
5851: PUSH
5852: LD_VAR 0 1
5856: ST_TO_ADDR
// x := depot_def [ pos ] [ 1 ] ;
5857: LD_ADDR_VAR 0 4
5861: PUSH
5862: LD_EXP 33
5866: PUSH
5867: LD_VAR 0 3
5871: ARRAY
5872: PUSH
5873: LD_INT 1
5875: ARRAY
5876: ST_TO_ADDR
// y := depot_def [ pos ] [ 2 ] ;
5877: LD_ADDR_VAR 0 5
5881: PUSH
5882: LD_EXP 33
5886: PUSH
5887: LD_VAR 0 3
5891: ARRAY
5892: PUSH
5893: LD_INT 2
5895: ARRAY
5896: ST_TO_ADDR
// dir := depot_def [ pos ] [ 3 ] ;
5897: LD_ADDR_VAR 0 6
5901: PUSH
5902: LD_EXP 33
5906: PUSH
5907: LD_VAR 0 3
5911: ARRAY
5912: PUSH
5913: LD_INT 3
5915: ARRAY
5916: ST_TO_ADDR
// if is_depot then
5917: LD_EXP 15
5921: IFFALSE 6054
// begin bc_type = b_depot ;
5923: LD_ADDR_OWVAR 42
5927: PUSH
5928: LD_INT 0
5930: ST_TO_ADDR
// dep := CreateAndPlaceBuildingXYD ( x , y , dir ) ;
5931: LD_ADDR_VAR 0 11
5935: PUSH
5936: LD_VAR 0 4
5940: PPUSH
5941: LD_VAR 0 5
5945: PPUSH
5946: LD_VAR 0 6
5950: PPUSH
5951: CALL_OW 47
5955: ST_TO_ADDR
// SetBName ( dep , @ & side ) ;
5956: LD_VAR 0 11
5960: PPUSH
5961: LD_STRING @
5963: PUSH
5964: LD_VAR 0 1
5968: STR
5969: PPUSH
5970: CALL_OW 500
// SetResourceType ( GetBase ( dep ) , mat_cans , starting_resources [ mat_cans ] ) ;
5974: LD_VAR 0 11
5978: PPUSH
5979: CALL_OW 274
5983: PPUSH
5984: LD_INT 1
5986: PPUSH
5987: LD_EXP 19
5991: PUSH
5992: LD_INT 1
5994: ARRAY
5995: PPUSH
5996: CALL_OW 277
// SetResourceType ( GetBase ( dep ) , mat_oil , starting_resources [ mat_oil ] ) ;
6000: LD_VAR 0 11
6004: PPUSH
6005: CALL_OW 274
6009: PPUSH
6010: LD_INT 2
6012: PPUSH
6013: LD_EXP 19
6017: PUSH
6018: LD_INT 2
6020: ARRAY
6021: PPUSH
6022: CALL_OW 277
// SetResourceType ( GetBase ( dep ) , mat_siberit , starting_resources [ mat_siberit ] ) ;
6026: LD_VAR 0 11
6030: PPUSH
6031: CALL_OW 274
6035: PPUSH
6036: LD_INT 3
6038: PPUSH
6039: LD_EXP 19
6043: PUSH
6044: LD_INT 3
6046: ARRAY
6047: PPUSH
6048: CALL_OW 277
// end else
6052: GO 6198
// begin for i := 1 to 3 do
6054: LD_ADDR_VAR 0 7
6058: PUSH
6059: DOUBLE
6060: LD_INT 1
6062: DEC
6063: ST_TO_ADDR
6064: LD_INT 3
6066: PUSH
6067: FOR_TO
6068: IFFALSE 6196
// begin r := starting_resources [ i ] ;
6070: LD_ADDR_VAR 0 8
6074: PUSH
6075: LD_EXP 19
6079: PUSH
6080: LD_VAR 0 7
6084: ARRAY
6085: ST_TO_ADDR
// while r >= 10 do
6086: LD_VAR 0 8
6090: PUSH
6091: LD_INT 10
6093: GREATEREQUAL
6094: IFFALSE 6194
// if r > 50 then
6096: LD_VAR 0 8
6100: PUSH
6101: LD_INT 50
6103: GREATER
6104: IFFALSE 6150
// begin CreateResourcesXYR ( i , 5 , x , y , 4 , false ) ;
6106: LD_VAR 0 7
6110: PPUSH
6111: LD_INT 5
6113: PPUSH
6114: LD_VAR 0 4
6118: PPUSH
6119: LD_VAR 0 5
6123: PPUSH
6124: LD_INT 4
6126: PPUSH
6127: LD_INT 0
6129: PPUSH
6130: CALL_OW 60
// r := r - 50 ;
6134: LD_ADDR_VAR 0 8
6138: PUSH
6139: LD_VAR 0 8
6143: PUSH
6144: LD_INT 50
6146: MINUS
6147: ST_TO_ADDR
// end else
6148: GO 6192
// begin CreateResourcesXYR ( i , r div 10 , x , y , 4 , false ) ;
6150: LD_VAR 0 7
6154: PPUSH
6155: LD_VAR 0 8
6159: PUSH
6160: LD_INT 10
6162: DIV
6163: PPUSH
6164: LD_VAR 0 4
6168: PPUSH
6169: LD_VAR 0 5
6173: PPUSH
6174: LD_INT 4
6176: PPUSH
6177: LD_INT 0
6179: PPUSH
6180: CALL_OW 60
// r := 0 ;
6184: LD_ADDR_VAR 0 8
6188: PUSH
6189: LD_INT 0
6191: ST_TO_ADDR
// end ;
6192: GO 6086
// end ;
6194: GO 6067
6196: POP
6197: POP
// end ; for r in starting_crates do
6198: LD_ADDR_VAR 0 8
6202: PUSH
6203: LD_EXP 20
6207: PUSH
6208: FOR_IN
6209: IFFALSE 6241
// CreateResourcesXYR ( mat_cans , 5 , x , y , r , false ) ;
6211: LD_INT 1
6213: PPUSH
6214: LD_INT 5
6216: PPUSH
6217: LD_VAR 0 4
6221: PPUSH
6222: LD_VAR 0 5
6226: PPUSH
6227: LD_VAR 0 8
6231: PPUSH
6232: LD_INT 0
6234: PPUSH
6235: CALL_OW 60
6239: GO 6208
6241: POP
6242: POP
// commander := true ;
6243: LD_ADDR_EXP 27
6247: PUSH
6248: LD_INT 1
6250: ST_TO_ADDR
// soldiers_created := 0 ;
6251: LD_ADDR_EXP 30
6255: PUSH
6256: LD_INT 0
6258: ST_TO_ADDR
// for i := 1 to number_of_breastworks do
6259: LD_ADDR_VAR 0 7
6263: PUSH
6264: DOUBLE
6265: LD_INT 1
6267: DEC
6268: ST_TO_ADDR
6269: LD_EXP 16
6273: PUSH
6274: FOR_TO
6275: IFFALSE 6497
// begin x := breastworks_def [ pos ] [ i ] [ 1 ] ;
6277: LD_ADDR_VAR 0 4
6281: PUSH
6282: LD_EXP 35
6286: PUSH
6287: LD_VAR 0 3
6291: ARRAY
6292: PUSH
6293: LD_VAR 0 7
6297: ARRAY
6298: PUSH
6299: LD_INT 1
6301: ARRAY
6302: ST_TO_ADDR
// y := breastworks_def [ pos ] [ i ] [ 2 ] ;
6303: LD_ADDR_VAR 0 5
6307: PUSH
6308: LD_EXP 35
6312: PUSH
6313: LD_VAR 0 3
6317: ARRAY
6318: PUSH
6319: LD_VAR 0 7
6323: ARRAY
6324: PUSH
6325: LD_INT 2
6327: ARRAY
6328: ST_TO_ADDR
// dir := breastworks_def [ pos ] [ i ] [ 3 ] ;
6329: LD_ADDR_VAR 0 6
6333: PUSH
6334: LD_EXP 35
6338: PUSH
6339: LD_VAR 0 3
6343: ARRAY
6344: PUSH
6345: LD_VAR 0 7
6349: ARRAY
6350: PUSH
6351: LD_INT 3
6353: ARRAY
6354: ST_TO_ADDR
// bc_type := b_breastwork ;
6355: LD_ADDR_OWVAR 42
6359: PUSH
6360: LD_INT 31
6362: ST_TO_ADDR
// br := CreateAndPlaceBuildingXYD ( x , y , dir ) ;
6363: LD_ADDR_VAR 0 10
6367: PUSH
6368: LD_VAR 0 4
6372: PPUSH
6373: LD_VAR 0 5
6377: PPUSH
6378: LD_VAR 0 6
6382: PPUSH
6383: CALL_OW 47
6387: ST_TO_ADDR
// x := ShiftX ( x , dir , 2 ) ;
6388: LD_ADDR_VAR 0 4
6392: PUSH
6393: LD_VAR 0 4
6397: PPUSH
6398: LD_VAR 0 6
6402: PPUSH
6403: LD_INT 2
6405: PPUSH
6406: CALL_OW 272
6410: ST_TO_ADDR
// y := ShiftY ( y , dir , 2 ) ;
6411: LD_ADDR_VAR 0 5
6415: PUSH
6416: LD_VAR 0 5
6420: PPUSH
6421: LD_VAR 0 6
6425: PPUSH
6426: LD_INT 2
6428: PPUSH
6429: CALL_OW 273
6433: ST_TO_ADDR
// sol := prepare_people ( 1 , class_soldier , x , y , 0 ) [ 1 ] ;
6434: LD_ADDR_VAR 0 9
6438: PUSH
6439: LD_INT 1
6441: PPUSH
6442: LD_INT 1
6444: PPUSH
6445: LD_VAR 0 4
6449: PPUSH
6450: LD_VAR 0 5
6454: PPUSH
6455: LD_INT 0
6457: PPUSH
6458: CALL 5288 0 5
6462: PUSH
6463: LD_INT 1
6465: ARRAY
6466: ST_TO_ADDR
// soldiers_created := soldiers_created + 1 ;
6467: LD_ADDR_EXP 30
6471: PUSH
6472: LD_EXP 30
6476: PUSH
6477: LD_INT 1
6479: PLUS
6480: ST_TO_ADDR
// ComEnterUnit ( sol , br ) ;
6481: LD_VAR 0 9
6485: PPUSH
6486: LD_VAR 0 10
6490: PPUSH
6491: CALL_OW 120
// end ;
6495: GO 6274
6497: POP
6498: POP
// x := start_def [ pos ] [ 1 ] ;
6499: LD_ADDR_VAR 0 4
6503: PUSH
6504: LD_EXP 34
6508: PUSH
6509: LD_VAR 0 3
6513: ARRAY
6514: PUSH
6515: LD_INT 1
6517: ARRAY
6518: ST_TO_ADDR
// y := start_def [ pos ] [ 2 ] ;
6519: LD_ADDR_VAR 0 5
6523: PUSH
6524: LD_EXP 34
6528: PUSH
6529: LD_VAR 0 3
6533: ARRAY
6534: PUSH
6535: LD_INT 2
6537: ARRAY
6538: ST_TO_ADDR
// prepare_people ( nsol - number_of_breastworks , class_soldier , x , y , 5 ) ;
6539: LD_EXP 36
6543: PUSH
6544: LD_EXP 16
6548: MINUS
6549: PPUSH
6550: LD_INT 1
6552: PPUSH
6553: LD_VAR 0 4
6557: PPUSH
6558: LD_VAR 0 5
6562: PPUSH
6563: LD_INT 5
6565: PPUSH
6566: CALL 5288 0 5
// prepare_people ( neng , class_engineer , x , y , 5 ) ;
6570: LD_EXP 37
6574: PPUSH
6575: LD_INT 2
6577: PPUSH
6578: LD_VAR 0 4
6582: PPUSH
6583: LD_VAR 0 5
6587: PPUSH
6588: LD_INT 5
6590: PPUSH
6591: CALL 5288 0 5
// prepare_people ( nmech , class_mechanic , x , y , 5 ) ;
6595: LD_EXP 38
6599: PPUSH
6600: LD_INT 3
6602: PPUSH
6603: LD_VAR 0 4
6607: PPUSH
6608: LD_VAR 0 5
6612: PPUSH
6613: LD_INT 5
6615: PPUSH
6616: CALL 5288 0 5
// prepare_people ( nsci , class_scientistic , x , y , 5 ) ;
6620: LD_EXP 39
6624: PPUSH
6625: LD_INT 4
6627: PPUSH
6628: LD_VAR 0 4
6632: PPUSH
6633: LD_VAR 0 5
6637: PPUSH
6638: LD_INT 5
6640: PPUSH
6641: CALL 5288 0 5
// SetTech ( tech_SibFiss , side , state_disabled ) ;
6645: LD_INT 25
6647: PPUSH
6648: LD_VAR 0 1
6652: PPUSH
6653: LD_INT 0
6655: PPUSH
6656: CALL_OW 322
// SetTech ( tech_artifact , side , state_disabled ) ;
6660: LD_INT 24
6662: PPUSH
6663: LD_VAR 0 1
6667: PPUSH
6668: LD_INT 0
6670: PPUSH
6671: CALL_OW 322
// global_defined := true ;
6675: LD_ADDR_EXP 28
6679: PUSH
6680: LD_INT 1
6682: ST_TO_ADDR
// end ;
6683: LD_VAR 0 2
6687: RET
// export function PreparePlayers ; var i ; begin
6688: LD_INT 0
6690: PPUSH
6691: PPUSH
// global_units := [ ] ;
6692: LD_ADDR_EXP 29
6696: PUSH
6697: EMPTY
6698: ST_TO_ADDR
// global_defined := false ;
6699: LD_ADDR_EXP 28
6703: PUSH
6704: LD_INT 0
6706: ST_TO_ADDR
// CountClassMembers ;
6707: CALL 6757 0 0
// for i := 1 to 8 do
6711: LD_ADDR_VAR 0 2
6715: PUSH
6716: DOUBLE
6717: LD_INT 1
6719: DEC
6720: ST_TO_ADDR
6721: LD_INT 8
6723: PUSH
6724: FOR_TO
6725: IFFALSE 6750
// if Side_Positions [ i ] then
6727: LD_EXP 1
6731: PUSH
6732: LD_VAR 0 2
6736: ARRAY
6737: IFFALSE 6748
// PreparePlayer ( i ) ;
6739: LD_VAR 0 2
6743: PPUSH
6744: CALL 5803 0 1
6748: GO 6724
6750: POP
6751: POP
// end ;
6752: LD_VAR 0 1
6756: RET
// export function CountClassMembers ; var Mode ; begin
6757: LD_INT 0
6759: PPUSH
6760: PPUSH
// Mode := 1 ;
6761: LD_ADDR_VAR 0 2
6765: PUSH
6766: LD_INT 1
6768: ST_TO_ADDR
// neng := number_of_people ;
6769: LD_ADDR_EXP 37
6773: PUSH
6774: LD_EXP 17
6778: ST_TO_ADDR
// nsol := neng div [ 4 , 3 ] [ Mode ] ;
6779: LD_ADDR_EXP 36
6783: PUSH
6784: LD_EXP 37
6788: PUSH
6789: LD_INT 4
6791: PUSH
6792: LD_INT 3
6794: PUSH
6795: EMPTY
6796: LIST
6797: LIST
6798: PUSH
6799: LD_VAR 0 2
6803: ARRAY
6804: DIV
6805: ST_TO_ADDR
// if ( nsol < number_of_breastworks ) then
6806: LD_EXP 36
6810: PUSH
6811: LD_EXP 16
6815: LESS
6816: IFFALSE 6828
// nsol := number_of_breastworks ;
6818: LD_ADDR_EXP 36
6822: PUSH
6823: LD_EXP 16
6827: ST_TO_ADDR
// neng := neng - nsol ;
6828: LD_ADDR_EXP 37
6832: PUSH
6833: LD_EXP 37
6837: PUSH
6838: LD_EXP 36
6842: MINUS
6843: ST_TO_ADDR
// nsci := neng div [ 3 , 2 ] [ Mode ] ;
6844: LD_ADDR_EXP 39
6848: PUSH
6849: LD_EXP 37
6853: PUSH
6854: LD_INT 3
6856: PUSH
6857: LD_INT 2
6859: PUSH
6860: EMPTY
6861: LIST
6862: LIST
6863: PUSH
6864: LD_VAR 0 2
6868: ARRAY
6869: DIV
6870: ST_TO_ADDR
// if ( nsci < 1 ) then
6871: LD_EXP 39
6875: PUSH
6876: LD_INT 1
6878: LESS
6879: IFFALSE 6889
// nsci := 1 ;
6881: LD_ADDR_EXP 39
6885: PUSH
6886: LD_INT 1
6888: ST_TO_ADDR
// neng := neng - nsci ;
6889: LD_ADDR_EXP 37
6893: PUSH
6894: LD_EXP 37
6898: PUSH
6899: LD_EXP 39
6903: MINUS
6904: ST_TO_ADDR
// nmech := [ neng div 2 , 0 ] [ Mode ] ;
6905: LD_ADDR_EXP 38
6909: PUSH
6910: LD_EXP 37
6914: PUSH
6915: LD_INT 2
6917: DIV
6918: PUSH
6919: LD_INT 0
6921: PUSH
6922: EMPTY
6923: LIST
6924: LIST
6925: PUSH
6926: LD_VAR 0 2
6930: ARRAY
6931: ST_TO_ADDR
// neng := neng - nmech ;
6932: LD_ADDR_EXP 37
6936: PUSH
6937: LD_EXP 37
6941: PUSH
6942: LD_EXP 38
6946: MINUS
6947: ST_TO_ADDR
// if ( neng < 1 ) then
6948: LD_EXP 37
6952: PUSH
6953: LD_INT 1
6955: LESS
6956: IFFALSE 6966
// neng := 1 ;
6958: LD_ADDR_EXP 37
6962: PUSH
6963: LD_INT 1
6965: ST_TO_ADDR
// end ;
6966: LD_VAR 0 1
6970: RET
// export function RespawnNewUnits ; begin
6971: LD_INT 0
6973: PPUSH
// respawn := Rand ( 1 , 8 ) ;
6974: LD_ADDR_EXP 40
6978: PUSH
6979: LD_INT 1
6981: PPUSH
6982: LD_INT 8
6984: PPUSH
6985: CALL_OW 12
6989: ST_TO_ADDR
// inqueue := [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ;
6990: LD_ADDR_EXP 41
6994: PUSH
6995: LD_INT 0
6997: PUSH
6998: LD_INT 0
7000: PUSH
7001: LD_INT 0
7003: PUSH
7004: LD_INT 0
7006: PUSH
7007: LD_INT 0
7009: PUSH
7010: LD_INT 0
7012: PUSH
7013: LD_INT 0
7015: PUSH
7016: LD_INT 0
7018: PUSH
7019: EMPTY
7020: LIST
7021: LIST
7022: LIST
7023: LIST
7024: LIST
7025: LIST
7026: LIST
7027: LIST
7028: ST_TO_ADDR
// end ;
7029: LD_VAR 0 1
7033: RET
// every 0 0$1 + 0 0$0.5 do var n , building_list , aktresp , b ;
7034: GO 7036
7036: DISABLE
7037: LD_INT 0
7039: PPUSH
7040: PPUSH
7041: PPUSH
7042: PPUSH
// begin if respawning_time_max = 0 then
7043: LD_EXP 23
7047: PUSH
7048: LD_INT 0
7050: EQUAL
7051: IFFALSE 7055
// exit ;
7053: GO 7558
// if respawn = 8 then
7055: LD_EXP 40
7059: PUSH
7060: LD_INT 8
7062: EQUAL
7063: IFFALSE 7075
// respawn := 1 else
7065: LD_ADDR_EXP 40
7069: PUSH
7070: LD_INT 1
7072: ST_TO_ADDR
7073: GO 7089
// respawn := respawn + 1 ;
7075: LD_ADDR_EXP 40
7079: PUSH
7080: LD_EXP 40
7084: PUSH
7085: LD_INT 1
7087: PLUS
7088: ST_TO_ADDR
// if Side_Positions [ respawn ] and not inqueue [ respawn ] then
7089: LD_EXP 1
7093: PUSH
7094: LD_EXP 40
7098: ARRAY
7099: PUSH
7100: LD_EXP 41
7104: PUSH
7105: LD_EXP 40
7109: ARRAY
7110: NOT
7111: AND
7112: IFFALSE 7557
// begin n := FilterAllUnits ( [ [ f_type , unit_human ] , [ f_side , respawn ] , f_not , [ f_nation , nation_nature ] ] ) ;
7114: LD_ADDR_VAR 0 1
7118: PUSH
7119: LD_INT 21
7121: PUSH
7122: LD_INT 1
7124: PUSH
7125: EMPTY
7126: LIST
7127: LIST
7128: PUSH
7129: LD_INT 22
7131: PUSH
7132: LD_EXP 40
7136: PUSH
7137: EMPTY
7138: LIST
7139: LIST
7140: PUSH
7141: LD_INT 3
7143: PUSH
7144: LD_INT 23
7146: PUSH
7147: LD_INT 0
7149: PUSH
7150: EMPTY
7151: LIST
7152: LIST
7153: PUSH
7154: EMPTY
7155: LIST
7156: LIST
7157: LIST
7158: LIST
7159: PPUSH
7160: CALL_OW 69
7164: ST_TO_ADDR
// if n < number_of_people then
7165: LD_VAR 0 1
7169: PUSH
7170: LD_EXP 17
7174: LESS
7175: IFFALSE 7554
// begin aktresp := respawn ;
7177: LD_ADDR_VAR 0 3
7181: PUSH
7182: LD_EXP 40
7186: ST_TO_ADDR
// inqueue := Replace ( inqueue , aktresp , true ) ;
7187: LD_ADDR_EXP 41
7191: PUSH
7192: LD_EXP 41
7196: PPUSH
7197: LD_VAR 0 3
7201: PPUSH
7202: LD_INT 1
7204: PPUSH
7205: CALL_OW 1
7209: ST_TO_ADDR
// enable ;
7210: ENABLE
// wait ( rand ( respawning_time_min , respawning_time_max ) ) ;
7211: LD_EXP 22
7215: PPUSH
7216: LD_EXP 23
7220: PPUSH
7221: CALL_OW 12
7225: PPUSH
7226: CALL_OW 67
// inqueue := Replace ( inqueue , aktresp , false ) ;
7230: LD_ADDR_EXP 41
7234: PUSH
7235: LD_EXP 41
7239: PPUSH
7240: LD_VAR 0 3
7244: PPUSH
7245: LD_INT 0
7247: PPUSH
7248: CALL_OW 1
7252: ST_TO_ADDR
// building_list = FilterAllUnits ( [ [ f_type , unit_building ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] , [ f_ok ] , [ f_side , aktresp ] ] ) ;
7253: LD_ADDR_VAR 0 2
7257: PUSH
7258: LD_INT 21
7260: PUSH
7261: LD_INT 3
7263: PUSH
7264: EMPTY
7265: LIST
7266: LIST
7267: PUSH
7268: LD_INT 2
7270: PUSH
7271: LD_INT 30
7273: PUSH
7274: LD_INT 0
7276: PUSH
7277: EMPTY
7278: LIST
7279: LIST
7280: PUSH
7281: LD_INT 30
7283: PUSH
7284: LD_INT 1
7286: PUSH
7287: EMPTY
7288: LIST
7289: LIST
7290: PUSH
7291: EMPTY
7292: LIST
7293: LIST
7294: LIST
7295: PUSH
7296: LD_INT 50
7298: PUSH
7299: EMPTY
7300: LIST
7301: PUSH
7302: LD_INT 22
7304: PUSH
7305: LD_VAR 0 3
7309: PUSH
7310: EMPTY
7311: LIST
7312: LIST
7313: PUSH
7314: EMPTY
7315: LIST
7316: LIST
7317: LIST
7318: LIST
7319: PPUSH
7320: CALL_OW 69
7324: ST_TO_ADDR
// if building_list = 0 then
7325: LD_VAR 0 2
7329: PUSH
7330: LD_INT 0
7332: EQUAL
7333: IFFALSE 7378
// building_list = FilterAllUnits ( [ [ f_type , unit_building ] , [ f_ok ] , [ f_side , aktresp ] ] ) ;
7335: LD_ADDR_VAR 0 2
7339: PUSH
7340: LD_INT 21
7342: PUSH
7343: LD_INT 3
7345: PUSH
7346: EMPTY
7347: LIST
7348: LIST
7349: PUSH
7350: LD_INT 50
7352: PUSH
7353: EMPTY
7354: LIST
7355: PUSH
7356: LD_INT 22
7358: PUSH
7359: LD_VAR 0 3
7363: PUSH
7364: EMPTY
7365: LIST
7366: LIST
7367: PUSH
7368: EMPTY
7369: LIST
7370: LIST
7371: LIST
7372: PPUSH
7373: CALL_OW 69
7377: ST_TO_ADDR
// if building_list = 0 then
7378: LD_VAR 0 2
7382: PUSH
7383: LD_INT 0
7385: EQUAL
7386: IFFALSE 7390
// exit ;
7388: GO 7558
// hc_name :=  ;
7390: LD_ADDR_OWVAR 26
7394: PUSH
7395: LD_STRING 
7397: ST_TO_ADDR
// hc_importance := 0 ;
7398: LD_ADDR_OWVAR 32
7402: PUSH
7403: LD_INT 0
7405: ST_TO_ADDR
// PrepareHuman ( 0 , 0 , skill_level ) ;
7406: LD_INT 0
7408: PPUSH
7409: LD_INT 0
7411: PPUSH
7412: LD_EXP 18
7416: PPUSH
7417: CALL_OW 380
// uc_nation := Side_Nations [ aktresp ] ;
7421: LD_ADDR_OWVAR 21
7425: PUSH
7426: LD_EXP 3
7430: PUSH
7431: LD_VAR 0 3
7435: ARRAY
7436: ST_TO_ADDR
// uc_side := aktresp ;
7437: LD_ADDR_OWVAR 20
7441: PUSH
7442: LD_VAR 0 3
7446: ST_TO_ADDR
// b := building_list [ Rand ( 1 , building_list + 0 ) ] ;
7447: LD_ADDR_VAR 0 4
7451: PUSH
7452: LD_VAR 0 2
7456: PUSH
7457: LD_INT 1
7459: PPUSH
7460: LD_VAR 0 2
7464: PUSH
7465: LD_INT 0
7467: PLUS
7468: PPUSH
7469: CALL_OW 12
7473: ARRAY
7474: ST_TO_ADDR
// if GetBType ( b ) in [ b_depot , b_warehouse ] then
7475: LD_VAR 0 4
7479: PPUSH
7480: CALL_OW 266
7484: PUSH
7485: LD_INT 0
7487: PUSH
7488: LD_INT 1
7490: PUSH
7491: EMPTY
7492: LIST
7493: LIST
7494: IN
7495: IFFALSE 7507
// n = 25 else
7497: LD_ADDR_VAR 0 1
7501: PUSH
7502: LD_INT 25
7504: ST_TO_ADDR
7505: GO 7515
// n = 10 ;
7507: LD_ADDR_VAR 0 1
7511: PUSH
7512: LD_INT 10
7514: ST_TO_ADDR
// PlaceUnitXYR ( CreateHuman , GetX ( b ) , GetY ( b ) , n , true ) ;
7515: CALL_OW 44
7519: PPUSH
7520: LD_VAR 0 4
7524: PPUSH
7525: CALL_OW 250
7529: PPUSH
7530: LD_VAR 0 4
7534: PPUSH
7535: CALL_OW 251
7539: PPUSH
7540: LD_VAR 0 1
7544: PPUSH
7545: LD_INT 1
7547: PPUSH
7548: CALL_OW 50
// end else
7552: GO 7555
// enable ;
7554: ENABLE
// end else
7555: GO 7558
// enable ;
7557: ENABLE
// end ;
7558: PPOPN 4
7560: END
// export function apeman_init ; begin
7561: LD_INT 0
7563: PPUSH
// uc_side := 0 ;
7564: LD_ADDR_OWVAR 20
7568: PUSH
7569: LD_INT 0
7571: ST_TO_ADDR
// uc_nation := nation_nature ;
7572: LD_ADDR_OWVAR 21
7576: PUSH
7577: LD_INT 0
7579: ST_TO_ADDR
// hc_class := class_apeman ;
7580: LD_ADDR_OWVAR 28
7584: PUSH
7585: LD_INT 12
7587: ST_TO_ADDR
// if hc_attr [ 2 ] < 12 then
7588: LD_OWVAR 29
7592: PUSH
7593: LD_INT 2
7595: ARRAY
7596: PUSH
7597: LD_INT 12
7599: LESS
7600: IFFALSE 7639
// hc_attr = [ hc_attr [ 1 ] + 5 , hc_attr [ 2 ] + 1 ] else
7602: LD_ADDR_OWVAR 29
7606: PUSH
7607: LD_OWVAR 29
7611: PUSH
7612: LD_INT 1
7614: ARRAY
7615: PUSH
7616: LD_INT 5
7618: PLUS
7619: PUSH
7620: LD_OWVAR 29
7624: PUSH
7625: LD_INT 2
7627: ARRAY
7628: PUSH
7629: LD_INT 1
7631: PLUS
7632: PUSH
7633: EMPTY
7634: LIST
7635: LIST
7636: ST_TO_ADDR
7637: GO 7670
// hc_attr = [ hc_attr [ 1 ] + 5 , hc_attr [ 2 ] ] ;
7639: LD_ADDR_OWVAR 29
7643: PUSH
7644: LD_OWVAR 29
7648: PUSH
7649: LD_INT 1
7651: ARRAY
7652: PUSH
7653: LD_INT 5
7655: PLUS
7656: PUSH
7657: LD_OWVAR 29
7661: PUSH
7662: LD_INT 2
7664: ARRAY
7665: PUSH
7666: EMPTY
7667: LIST
7668: LIST
7669: ST_TO_ADDR
// hc_sex := sex_male ;
7670: LD_ADDR_OWVAR 27
7674: PUSH
7675: LD_INT 1
7677: ST_TO_ADDR
// hc_importance := 0 ;
7678: LD_ADDR_OWVAR 32
7682: PUSH
7683: LD_INT 0
7685: ST_TO_ADDR
// hc_agressivity := Rand ( - 20 , 20 ) ;
7686: LD_ADDR_OWVAR 35
7690: PUSH
7691: LD_INT 20
7693: NEG
7694: PPUSH
7695: LD_INT 20
7697: PPUSH
7698: CALL_OW 12
7702: ST_TO_ADDR
// end ;
7703: LD_VAR 0 1
7707: RET
// function PrepareApemen ( area ) ; var i , j , un , ape , first , d1 , d2 ; begin
7708: LD_INT 0
7710: PPUSH
7711: PPUSH
7712: PPUSH
7713: PPUSH
7714: PPUSH
7715: PPUSH
7716: PPUSH
7717: PPUSH
// if not amount_of_apemen then
7718: LD_EXP 24
7722: NOT
7723: IFFALSE 7727
// exit ;
7725: GO 7814
// ape := 0 ;
7727: LD_ADDR_VAR 0 6
7731: PUSH
7732: LD_INT 0
7734: ST_TO_ADDR
// repeat Wait ( ( ape + 1 ) * Rand ( 0 0$10 , 1 1$0 ) ) ;
7735: LD_VAR 0 6
7739: PUSH
7740: LD_INT 1
7742: PLUS
7743: PUSH
7744: LD_INT 350
7746: PPUSH
7747: LD_INT 2100
7749: PPUSH
7750: CALL_OW 12
7754: MUL
7755: PPUSH
7756: CALL_OW 67
// apeman_init ;
7760: CALL 7561 0 0
// PlaceUnitArea ( CreateHuman , area , false ) ;
7764: CALL_OW 44
7768: PPUSH
7769: LD_VAR 0 1
7773: PPUSH
7774: LD_INT 0
7776: PPUSH
7777: CALL_OW 49
// Wait ( 3 ) ;
7781: LD_INT 3
7783: PPUSH
7784: CALL_OW 67
// ape := ape + 1 ;
7788: LD_ADDR_VAR 0 6
7792: PUSH
7793: LD_VAR 0 6
7797: PUSH
7798: LD_INT 1
7800: PLUS
7801: ST_TO_ADDR
// until ape >= amount_of_apemen ;
7802: LD_VAR 0 6
7806: PUSH
7807: LD_EXP 24
7811: GREATEREQUAL
7812: IFFALSE 7735
// end ;
7814: LD_VAR 0 2
7818: RET
// every 0 0$15 do
7819: GO 7821
7821: DISABLE
// begin PrepareApemen ( ApemenArea1 ) ;
7822: LD_INT 9
7824: PPUSH
7825: CALL 7708 0 1
// PrepareApemen ( ApemenArea2 ) ;
7829: LD_INT 10
7831: PPUSH
7832: CALL 7708 0 1
// end ; end_of_file
7836: END
// every 1 1$0 + 0 0$0.3 marked 10 do
7837: GO 7839
7839: DISABLE
// begin CreateCratesAnywhere ( Rand ( 4 , 5 ) , true ) ;
7840: LD_INT 4
7842: PPUSH
7843: LD_INT 5
7845: PPUSH
7846: CALL_OW 12
7850: PPUSH
7851: LD_INT 1
7853: PPUSH
7854: CALL_OW 57
// enable ;
7858: ENABLE
// end ;
7859: END
// every 0 0$1 + 0 0$0.6 marked 10 do var i , amount ;
7860: GO 7862
7862: DISABLE
7863: LD_INT 0
7865: PPUSH
7866: PPUSH
// begin case tick of 1 .. 1 1$0 :
7867: LD_OWVAR 1
7871: PUSH
7872: LD_INT 1
7874: DOUBLE
7875: GREATEREQUAL
7876: IFFALSE 7884
7878: LD_INT 2100
7880: DOUBLE
7881: LESSEQUAL
7882: IFTRUE 7886
7884: GO 7914
7886: POP
// Wait ( shipments_density / 100 * Rand ( 0 0$10 , 0 0$30 ) ) ; 1 1$0 + 1 .. 5 5$0 :
7887: LD_EXP 25
7891: PUSH
7892: LD_INT 100
7894: DIVREAL
7895: PUSH
7896: LD_INT 350
7898: PPUSH
7899: LD_INT 1050
7901: PPUSH
7902: CALL_OW 12
7906: MUL
7907: PPUSH
7908: CALL_OW 67
7912: GO 8124
7914: LD_INT 2100
7916: PUSH
7917: LD_INT 1
7919: PLUS
7920: DOUBLE
7921: GREATEREQUAL
7922: IFFALSE 7930
7924: LD_INT 10500
7926: DOUBLE
7927: LESSEQUAL
7928: IFTRUE 7932
7930: GO 7960
7932: POP
// Wait ( shipments_density / 100 * Rand ( 0 0$30 , 0 0$45 ) ) ; 5 5$0 + 1 .. 10 10$0 :
7933: LD_EXP 25
7937: PUSH
7938: LD_INT 100
7940: DIVREAL
7941: PUSH
7942: LD_INT 1050
7944: PPUSH
7945: LD_INT 1575
7947: PPUSH
7948: CALL_OW 12
7952: MUL
7953: PPUSH
7954: CALL_OW 67
7958: GO 8124
7960: LD_INT 10500
7962: PUSH
7963: LD_INT 1
7965: PLUS
7966: DOUBLE
7967: GREATEREQUAL
7968: IFFALSE 7976
7970: LD_INT 21000
7972: DOUBLE
7973: LESSEQUAL
7974: IFTRUE 7978
7976: GO 8006
7978: POP
// Wait ( shipments_density / 100 * Rand ( 0 0$45 , 1 1$0 ) ) ; 10 10$0 + 1 .. 20 20$0 :
7979: LD_EXP 25
7983: PUSH
7984: LD_INT 100
7986: DIVREAL
7987: PUSH
7988: LD_INT 1575
7990: PPUSH
7991: LD_INT 2100
7993: PPUSH
7994: CALL_OW 12
7998: MUL
7999: PPUSH
8000: CALL_OW 67
8004: GO 8124
8006: LD_INT 21000
8008: PUSH
8009: LD_INT 1
8011: PLUS
8012: DOUBLE
8013: GREATEREQUAL
8014: IFFALSE 8022
8016: LD_INT 42000
8018: DOUBLE
8019: LESSEQUAL
8020: IFTRUE 8024
8022: GO 8052
8024: POP
// Wait ( shipments_density / 100 * Rand ( 1 1$0 , 1 1$15 ) ) ; 20 20$0 + 1 .. 30 30$0 :
8025: LD_EXP 25
8029: PUSH
8030: LD_INT 100
8032: DIVREAL
8033: PUSH
8034: LD_INT 2100
8036: PPUSH
8037: LD_INT 2625
8039: PPUSH
8040: CALL_OW 12
8044: MUL
8045: PPUSH
8046: CALL_OW 67
8050: GO 8124
8052: LD_INT 42000
8054: PUSH
8055: LD_INT 1
8057: PLUS
8058: DOUBLE
8059: GREATEREQUAL
8060: IFFALSE 8068
8062: LD_INT 63000
8064: DOUBLE
8065: LESSEQUAL
8066: IFTRUE 8070
8068: GO 8098
8070: POP
// Wait ( shipments_density / 100 * Rand ( 1 1$15 , 1 1$30 ) ) ; else
8071: LD_EXP 25
8075: PUSH
8076: LD_INT 100
8078: DIVREAL
8079: PUSH
8080: LD_INT 2625
8082: PPUSH
8083: LD_INT 3150
8085: PPUSH
8086: CALL_OW 12
8090: MUL
8091: PPUSH
8092: CALL_OW 67
8096: GO 8124
8098: POP
// Wait ( shipments_density / 100 * Rand ( 1 1$15 , 2 2$30 ) ) ; end ;
8099: LD_EXP 25
8103: PUSH
8104: LD_INT 100
8106: DIVREAL
8107: PUSH
8108: LD_INT 2625
8110: PPUSH
8111: LD_INT 5250
8113: PPUSH
8114: CALL_OW 12
8118: MUL
8119: PPUSH
8120: CALL_OW 67
// amount := Rand ( 3 , 5 ) ;
8124: LD_ADDR_VAR 0 2
8128: PUSH
8129: LD_INT 3
8131: PPUSH
8132: LD_INT 5
8134: PPUSH
8135: CALL_OW 12
8139: ST_TO_ADDR
// for i in ( Side_Positions diff [ 0 ] ) do
8140: LD_ADDR_VAR 0 1
8144: PUSH
8145: LD_EXP 1
8149: PUSH
8150: LD_INT 0
8152: PUSH
8153: EMPTY
8154: LIST
8155: DIFF
8156: PUSH
8157: FOR_IN
8158: IFFALSE 8207
// CreateCratesXYR ( amount , start_def [ i ] [ 1 ] , start_def [ i ] [ 2 ] , 20 , true ) ;
8160: LD_VAR 0 2
8164: PPUSH
8165: LD_EXP 34
8169: PUSH
8170: LD_VAR 0 1
8174: ARRAY
8175: PUSH
8176: LD_INT 1
8178: ARRAY
8179: PPUSH
8180: LD_EXP 34
8184: PUSH
8185: LD_VAR 0 1
8189: ARRAY
8190: PUSH
8191: LD_INT 2
8193: ARRAY
8194: PPUSH
8195: LD_INT 20
8197: PPUSH
8198: LD_INT 1
8200: PPUSH
8201: CALL_OW 56
8205: GO 8157
8207: POP
8208: POP
// enable ;
8209: ENABLE
// end ;
8210: PPOPN 2
8212: END
// every 0 0$20 + 0 0$0.9 marked 10 do var i , filter ;
8213: GO 8215
8215: DISABLE
8216: LD_INT 0
8218: PPUSH
8219: PPUSH
// begin if GetResourceArea ( MZBaseArea , mat_cans ) < ( ( 200 - shipments_density ) / 100 * 5 ) then
8220: LD_INT 8
8222: PPUSH
8223: LD_INT 1
8225: PPUSH
8226: CALL_OW 287
8230: PUSH
8231: LD_INT 200
8233: PUSH
8234: LD_EXP 25
8238: MINUS
8239: PUSH
8240: LD_INT 100
8242: DIVREAL
8243: PUSH
8244: LD_INT 5
8246: MUL
8247: LESS
8248: IFFALSE 8271
// CreateCratesArea ( Rand ( 3 , 5 ) , MZBaseArea , true ) ;
8250: LD_INT 3
8252: PPUSH
8253: LD_INT 5
8255: PPUSH
8256: CALL_OW 12
8260: PPUSH
8261: LD_INT 8
8263: PPUSH
8264: LD_INT 1
8266: PPUSH
8267: CALL_OW 55
// enable ;
8271: ENABLE
// end ; end_of_file
8272: PPOPN 2
8274: END
// every 0 0$3 trigger FilterAllUnits ( [ [ f_side , randomedColors [ 1 ] ] , [ f_class , class_bazooker ] ] ) do
8275: LD_INT 22
8277: PUSH
8278: LD_EXP 44
8282: PUSH
8283: LD_INT 1
8285: ARRAY
8286: PUSH
8287: EMPTY
8288: LIST
8289: LIST
8290: PUSH
8291: LD_INT 25
8293: PUSH
8294: LD_INT 9
8296: PUSH
8297: EMPTY
8298: LIST
8299: LIST
8300: PUSH
8301: EMPTY
8302: LIST
8303: LIST
8304: PPUSH
8305: CALL_OW 69
8309: IFFALSE 8328
8311: GO 8313
8313: DISABLE
// begin IntBazooka ( randomedColors [ 1 ] ) ;
8314: LD_EXP 44
8318: PUSH
8319: LD_INT 1
8321: ARRAY
8322: PPUSH
8323: CALL 684 0 1
// enable ;
8327: ENABLE
// end ; end_of_file
8328: END
// every 2 2$0 do
8329: GO 8331
8331: DISABLE
// begin waves = 1 ;
8332: LD_ADDR_EXP 45
8336: PUSH
8337: LD_INT 1
8339: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 1 , 5 , 0 , 0 , 0 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
8340: LD_EXP 44
8344: PUSH
8345: LD_INT 1
8347: ARRAY
8348: PPUSH
8349: LD_INT 1
8351: PPUSH
8352: LD_INT 5
8354: PPUSH
8355: LD_INT 0
8357: PPUSH
8358: LD_INT 0
8360: PPUSH
8361: LD_INT 0
8363: PPUSH
8364: LD_INT 0
8366: PPUSH
8367: LD_EXP 21
8371: PPUSH
8372: LD_INT 11
8374: PPUSH
8375: LD_INT 11
8377: PPUSH
8378: LD_EXP 42
8382: PPUSH
8383: CALL 2689 0 11
// end ;
8387: END
// every 3 3$0 do
8388: GO 8390
8390: DISABLE
// begin waves = 2 ;
8391: LD_ADDR_EXP 45
8395: PUSH
8396: LD_INT 2
8398: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 2 , 10 , 0 , 0 , 0 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
8399: LD_EXP 44
8403: PUSH
8404: LD_INT 1
8406: ARRAY
8407: PPUSH
8408: LD_INT 2
8410: PPUSH
8411: LD_INT 10
8413: PPUSH
8414: LD_INT 0
8416: PPUSH
8417: LD_INT 0
8419: PPUSH
8420: LD_INT 0
8422: PPUSH
8423: LD_INT 0
8425: PPUSH
8426: LD_EXP 21
8430: PPUSH
8431: LD_INT 11
8433: PPUSH
8434: LD_INT 11
8436: PPUSH
8437: LD_EXP 42
8441: PPUSH
8442: CALL 2689 0 11
// end ;
8446: END
// every 4 4$0 do
8447: GO 8449
8449: DISABLE
// begin waves = 3 ;
8450: LD_ADDR_EXP 45
8454: PUSH
8455: LD_INT 3
8457: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 2 , 10 , 0 , 0 , 0 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
8458: LD_EXP 44
8462: PUSH
8463: LD_INT 1
8465: ARRAY
8466: PPUSH
8467: LD_INT 2
8469: PPUSH
8470: LD_INT 10
8472: PPUSH
8473: LD_INT 0
8475: PPUSH
8476: LD_INT 0
8478: PPUSH
8479: LD_INT 0
8481: PPUSH
8482: LD_INT 0
8484: PPUSH
8485: LD_EXP 21
8489: PPUSH
8490: LD_INT 11
8492: PPUSH
8493: LD_INT 11
8495: PPUSH
8496: LD_EXP 42
8500: PPUSH
8501: CALL 2689 0 11
// end ;
8505: END
// every 5 5$0 do
8506: GO 8508
8508: DISABLE
// begin waves = 3 ;
8509: LD_ADDR_EXP 45
8513: PUSH
8514: LD_INT 3
8516: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 2 , difficulty_level , 2 , 1 , 1 , [ ] , [ 24 , 26 ] , [ ] , sideP1 ) ;
8517: LD_INT 11
8519: PPUSH
8520: LD_EXP 44
8524: PUSH
8525: LD_INT 1
8527: ARRAY
8528: PPUSH
8529: LD_INT 2
8531: PPUSH
8532: LD_EXP 21
8536: PPUSH
8537: LD_INT 2
8539: PPUSH
8540: LD_INT 1
8542: PPUSH
8543: LD_INT 1
8545: PPUSH
8546: EMPTY
8547: PPUSH
8548: LD_INT 24
8550: PUSH
8551: LD_INT 26
8553: PUSH
8554: EMPTY
8555: LIST
8556: LIST
8557: PPUSH
8558: EMPTY
8559: PPUSH
8560: LD_EXP 42
8564: PPUSH
8565: CALL 1010 0 11
// end ;
8569: END
// every 7 7$0 do
8570: GO 8572
8572: DISABLE
// begin waves = 4 ;
8573: LD_ADDR_EXP 45
8577: PUSH
8578: LD_INT 4
8580: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 3 , 15 , 0 , 0 , 0 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
8581: LD_EXP 44
8585: PUSH
8586: LD_INT 1
8588: ARRAY
8589: PPUSH
8590: LD_INT 3
8592: PPUSH
8593: LD_INT 15
8595: PPUSH
8596: LD_INT 0
8598: PPUSH
8599: LD_INT 0
8601: PPUSH
8602: LD_INT 0
8604: PPUSH
8605: LD_INT 0
8607: PPUSH
8608: LD_EXP 21
8612: PPUSH
8613: LD_INT 11
8615: PPUSH
8616: LD_INT 11
8618: PPUSH
8619: LD_EXP 42
8623: PPUSH
8624: CALL 2689 0 11
// end ;
8628: END
// every 7 7$0 do
8629: GO 8631
8631: DISABLE
// begin waves = 4 ;
8632: LD_ADDR_EXP 45
8636: PUSH
8637: LD_INT 4
8639: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 2 , difficulty_level , 3 , 1 , 1 , [ 42 , 43 , 44 ] , [ 24 , 26 ] , [ ] , sideP1 ) ;
8640: LD_INT 11
8642: PPUSH
8643: LD_EXP 44
8647: PUSH
8648: LD_INT 1
8650: ARRAY
8651: PPUSH
8652: LD_INT 2
8654: PPUSH
8655: LD_EXP 21
8659: PPUSH
8660: LD_INT 3
8662: PPUSH
8663: LD_INT 1
8665: PPUSH
8666: LD_INT 1
8668: PPUSH
8669: LD_INT 42
8671: PUSH
8672: LD_INT 43
8674: PUSH
8675: LD_INT 44
8677: PUSH
8678: EMPTY
8679: LIST
8680: LIST
8681: LIST
8682: PPUSH
8683: LD_INT 24
8685: PUSH
8686: LD_INT 26
8688: PUSH
8689: EMPTY
8690: LIST
8691: LIST
8692: PPUSH
8693: EMPTY
8694: PPUSH
8695: LD_EXP 42
8699: PPUSH
8700: CALL 1010 0 11
// end ;
8704: END
// every 10 10$0 do
8705: GO 8707
8707: DISABLE
// begin waves = 5 ;
8708: LD_ADDR_EXP 45
8712: PUSH
8713: LD_INT 5
8715: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 1 , 5 , 2 , 0 , 0 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
8716: LD_EXP 44
8720: PUSH
8721: LD_INT 1
8723: ARRAY
8724: PPUSH
8725: LD_INT 1
8727: PPUSH
8728: LD_INT 5
8730: PPUSH
8731: LD_INT 2
8733: PPUSH
8734: LD_INT 0
8736: PPUSH
8737: LD_INT 0
8739: PPUSH
8740: LD_INT 0
8742: PPUSH
8743: LD_EXP 21
8747: PPUSH
8748: LD_INT 11
8750: PPUSH
8751: LD_INT 11
8753: PPUSH
8754: LD_EXP 42
8758: PPUSH
8759: CALL 2689 0 11
// end ;
8763: END
// every 10 10$0 do
8764: GO 8766
8766: DISABLE
// begin waves = 5 ;
8767: LD_ADDR_EXP 45
8771: PUSH
8772: LD_INT 5
8774: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 4 , difficulty_level , 1 , 1 , 1 , [ 42 , 43 , 44 ] , [ 24 , 26 ] , [ 4 , 5 , 6 , 9 ] , sideP1 ) ;
8775: LD_INT 11
8777: PPUSH
8778: LD_EXP 44
8782: PUSH
8783: LD_INT 1
8785: ARRAY
8786: PPUSH
8787: LD_INT 4
8789: PPUSH
8790: LD_EXP 21
8794: PPUSH
8795: LD_INT 1
8797: PPUSH
8798: LD_INT 1
8800: PPUSH
8801: LD_INT 1
8803: PPUSH
8804: LD_INT 42
8806: PUSH
8807: LD_INT 43
8809: PUSH
8810: LD_INT 44
8812: PUSH
8813: EMPTY
8814: LIST
8815: LIST
8816: LIST
8817: PPUSH
8818: LD_INT 24
8820: PUSH
8821: LD_INT 26
8823: PUSH
8824: EMPTY
8825: LIST
8826: LIST
8827: PPUSH
8828: LD_INT 4
8830: PUSH
8831: LD_INT 5
8833: PUSH
8834: LD_INT 6
8836: PUSH
8837: LD_INT 9
8839: PUSH
8840: EMPTY
8841: LIST
8842: LIST
8843: LIST
8844: LIST
8845: PPUSH
8846: LD_EXP 42
8850: PPUSH
8851: CALL 1010 0 11
// end ;
8855: END
// every 13 13$0 do
8856: GO 8858
8858: DISABLE
// begin waves = 6 ;
8859: LD_ADDR_EXP 45
8863: PUSH
8864: LD_INT 6
8866: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 2 , 5 , 0 , 0 , 3 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
8867: LD_EXP 44
8871: PUSH
8872: LD_INT 1
8874: ARRAY
8875: PPUSH
8876: LD_INT 2
8878: PPUSH
8879: LD_INT 5
8881: PPUSH
8882: LD_INT 0
8884: PPUSH
8885: LD_INT 0
8887: PPUSH
8888: LD_INT 3
8890: PPUSH
8891: LD_INT 0
8893: PPUSH
8894: LD_EXP 21
8898: PPUSH
8899: LD_INT 11
8901: PPUSH
8902: LD_INT 11
8904: PPUSH
8905: LD_EXP 42
8909: PPUSH
8910: CALL 2689 0 11
// end ;
8914: END
// every 13 13$0 do
8915: GO 8917
8917: DISABLE
// begin waves = 6 ;
8918: LD_ADDR_EXP 45
8922: PUSH
8923: LD_INT 6
8925: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 4 , difficulty_level , 2 , 1 , 1 , [ 42 , 43 , 44 ] , [ 27 , 25 , 26 ] , [ 4 , 5 , 6 , 9 ] , sideP1 ) ;
8926: LD_INT 11
8928: PPUSH
8929: LD_EXP 44
8933: PUSH
8934: LD_INT 1
8936: ARRAY
8937: PPUSH
8938: LD_INT 4
8940: PPUSH
8941: LD_EXP 21
8945: PPUSH
8946: LD_INT 2
8948: PPUSH
8949: LD_INT 1
8951: PPUSH
8952: LD_INT 1
8954: PPUSH
8955: LD_INT 42
8957: PUSH
8958: LD_INT 43
8960: PUSH
8961: LD_INT 44
8963: PUSH
8964: EMPTY
8965: LIST
8966: LIST
8967: LIST
8968: PPUSH
8969: LD_INT 27
8971: PUSH
8972: LD_INT 25
8974: PUSH
8975: LD_INT 26
8977: PUSH
8978: EMPTY
8979: LIST
8980: LIST
8981: LIST
8982: PPUSH
8983: LD_INT 4
8985: PUSH
8986: LD_INT 5
8988: PUSH
8989: LD_INT 6
8991: PUSH
8992: LD_INT 9
8994: PUSH
8995: EMPTY
8996: LIST
8997: LIST
8998: LIST
8999: LIST
9000: PPUSH
9001: LD_EXP 42
9005: PPUSH
9006: CALL 1010 0 11
// end ;
9010: END
// every 15 15$0 do
9011: GO 9013
9013: DISABLE
// begin waves = 7 ;
9014: LD_ADDR_EXP 45
9018: PUSH
9019: LD_INT 7
9021: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 3 , 8 , 0 , 3 , 0 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
9022: LD_EXP 44
9026: PUSH
9027: LD_INT 1
9029: ARRAY
9030: PPUSH
9031: LD_INT 3
9033: PPUSH
9034: LD_INT 8
9036: PPUSH
9037: LD_INT 0
9039: PPUSH
9040: LD_INT 3
9042: PPUSH
9043: LD_INT 0
9045: PPUSH
9046: LD_INT 0
9048: PPUSH
9049: LD_EXP 21
9053: PPUSH
9054: LD_INT 11
9056: PPUSH
9057: LD_INT 11
9059: PPUSH
9060: LD_EXP 42
9064: PPUSH
9065: CALL 2689 0 11
// end ;
9069: END
// every 15 15$0 do
9070: GO 9072
9072: DISABLE
// begin waves = 7 ;
9073: LD_ADDR_EXP 45
9077: PUSH
9078: LD_INT 7
9080: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 5 , difficulty_level , 3 , 3 , 3 , [ 42 , 43 , 44 , 46 , 45 ] , [ 27 , 25 , 26 ] , [ 4 , 5 , 6 , 9 ] , sideP1 ) ;
9081: LD_INT 11
9083: PPUSH
9084: LD_EXP 44
9088: PUSH
9089: LD_INT 1
9091: ARRAY
9092: PPUSH
9093: LD_INT 5
9095: PPUSH
9096: LD_EXP 21
9100: PPUSH
9101: LD_INT 3
9103: PPUSH
9104: LD_INT 3
9106: PPUSH
9107: LD_INT 3
9109: PPUSH
9110: LD_INT 42
9112: PUSH
9113: LD_INT 43
9115: PUSH
9116: LD_INT 44
9118: PUSH
9119: LD_INT 46
9121: PUSH
9122: LD_INT 45
9124: PUSH
9125: EMPTY
9126: LIST
9127: LIST
9128: LIST
9129: LIST
9130: LIST
9131: PPUSH
9132: LD_INT 27
9134: PUSH
9135: LD_INT 25
9137: PUSH
9138: LD_INT 26
9140: PUSH
9141: EMPTY
9142: LIST
9143: LIST
9144: LIST
9145: PPUSH
9146: LD_INT 4
9148: PUSH
9149: LD_INT 5
9151: PUSH
9152: LD_INT 6
9154: PUSH
9155: LD_INT 9
9157: PUSH
9158: EMPTY
9159: LIST
9160: LIST
9161: LIST
9162: LIST
9163: PPUSH
9164: LD_EXP 42
9168: PPUSH
9169: CALL 1010 0 11
// end ;
9173: END
// every 18 18$0 do
9174: GO 9176
9176: DISABLE
// begin waves = 8 ;
9177: LD_ADDR_EXP 45
9181: PUSH
9182: LD_INT 8
9184: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 1 , 8 , 1 , 1 , 1 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
9185: LD_EXP 44
9189: PUSH
9190: LD_INT 1
9192: ARRAY
9193: PPUSH
9194: LD_INT 1
9196: PPUSH
9197: LD_INT 8
9199: PPUSH
9200: LD_INT 1
9202: PPUSH
9203: LD_INT 1
9205: PPUSH
9206: LD_INT 1
9208: PPUSH
9209: LD_INT 0
9211: PPUSH
9212: LD_EXP 21
9216: PPUSH
9217: LD_INT 11
9219: PPUSH
9220: LD_INT 11
9222: PPUSH
9223: LD_EXP 42
9227: PPUSH
9228: CALL 2689 0 11
// end ;
9232: END
// every 18 18$0 do
9233: GO 9235
9235: DISABLE
// begin waves = 8 ;
9236: LD_ADDR_EXP 45
9240: PUSH
9241: LD_INT 8
9243: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 5 , difficulty_level , 1 , 3 , 3 , [ 42 , 43 , 44 , 46 , 45 ] , [ 27 , 25 , 26 ] , [ 4 , 5 , 6 , 9 , 7 ] , sideP1 ) ;
9244: LD_INT 11
9246: PPUSH
9247: LD_EXP 44
9251: PUSH
9252: LD_INT 1
9254: ARRAY
9255: PPUSH
9256: LD_INT 5
9258: PPUSH
9259: LD_EXP 21
9263: PPUSH
9264: LD_INT 1
9266: PPUSH
9267: LD_INT 3
9269: PPUSH
9270: LD_INT 3
9272: PPUSH
9273: LD_INT 42
9275: PUSH
9276: LD_INT 43
9278: PUSH
9279: LD_INT 44
9281: PUSH
9282: LD_INT 46
9284: PUSH
9285: LD_INT 45
9287: PUSH
9288: EMPTY
9289: LIST
9290: LIST
9291: LIST
9292: LIST
9293: LIST
9294: PPUSH
9295: LD_INT 27
9297: PUSH
9298: LD_INT 25
9300: PUSH
9301: LD_INT 26
9303: PUSH
9304: EMPTY
9305: LIST
9306: LIST
9307: LIST
9308: PPUSH
9309: LD_INT 4
9311: PUSH
9312: LD_INT 5
9314: PUSH
9315: LD_INT 6
9317: PUSH
9318: LD_INT 9
9320: PUSH
9321: LD_INT 7
9323: PUSH
9324: EMPTY
9325: LIST
9326: LIST
9327: LIST
9328: LIST
9329: LIST
9330: PPUSH
9331: LD_EXP 42
9335: PPUSH
9336: CALL 1010 0 11
// end ;
9340: END
// every 21 21$0 do
9341: GO 9343
9343: DISABLE
// begin waves = 9 ;
9344: LD_ADDR_EXP 45
9348: PUSH
9349: LD_INT 9
9351: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 2 , 8 , 2 , 2 , 2 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
9352: LD_EXP 44
9356: PUSH
9357: LD_INT 1
9359: ARRAY
9360: PPUSH
9361: LD_INT 2
9363: PPUSH
9364: LD_INT 8
9366: PPUSH
9367: LD_INT 2
9369: PPUSH
9370: LD_INT 2
9372: PPUSH
9373: LD_INT 2
9375: PPUSH
9376: LD_INT 0
9378: PPUSH
9379: LD_EXP 21
9383: PPUSH
9384: LD_INT 11
9386: PPUSH
9387: LD_INT 11
9389: PPUSH
9390: LD_EXP 42
9394: PPUSH
9395: CALL 2689 0 11
// end ;
9399: END
// every 21 21$0 do
9400: GO 9402
9402: DISABLE
// begin waves = 9 ;
9403: LD_ADDR_EXP 45
9407: PUSH
9408: LD_INT 9
9410: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 7 , difficulty_level , 2 , 3 , 5 , [ 42 , 43 , 44 , 46 , 45 ] , [ 27 , 25 , 26 , 28 ] , [ 4 , 5 , 6 , 9 , 7 ] , sideP1 ) ;
9411: LD_INT 11
9413: PPUSH
9414: LD_EXP 44
9418: PUSH
9419: LD_INT 1
9421: ARRAY
9422: PPUSH
9423: LD_INT 7
9425: PPUSH
9426: LD_EXP 21
9430: PPUSH
9431: LD_INT 2
9433: PPUSH
9434: LD_INT 3
9436: PPUSH
9437: LD_INT 5
9439: PPUSH
9440: LD_INT 42
9442: PUSH
9443: LD_INT 43
9445: PUSH
9446: LD_INT 44
9448: PUSH
9449: LD_INT 46
9451: PUSH
9452: LD_INT 45
9454: PUSH
9455: EMPTY
9456: LIST
9457: LIST
9458: LIST
9459: LIST
9460: LIST
9461: PPUSH
9462: LD_INT 27
9464: PUSH
9465: LD_INT 25
9467: PUSH
9468: LD_INT 26
9470: PUSH
9471: LD_INT 28
9473: PUSH
9474: EMPTY
9475: LIST
9476: LIST
9477: LIST
9478: LIST
9479: PPUSH
9480: LD_INT 4
9482: PUSH
9483: LD_INT 5
9485: PUSH
9486: LD_INT 6
9488: PUSH
9489: LD_INT 9
9491: PUSH
9492: LD_INT 7
9494: PUSH
9495: EMPTY
9496: LIST
9497: LIST
9498: LIST
9499: LIST
9500: LIST
9501: PPUSH
9502: LD_EXP 42
9506: PPUSH
9507: CALL 1010 0 11
// end ;
9511: END
// every 23 23$0 do
9512: GO 9514
9514: DISABLE
// begin waves = 10 ;
9515: LD_ADDR_EXP 45
9519: PUSH
9520: LD_INT 10
9522: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 3 , 10 , 3 , 3 , 3 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
9523: LD_EXP 44
9527: PUSH
9528: LD_INT 1
9530: ARRAY
9531: PPUSH
9532: LD_INT 3
9534: PPUSH
9535: LD_INT 10
9537: PPUSH
9538: LD_INT 3
9540: PPUSH
9541: LD_INT 3
9543: PPUSH
9544: LD_INT 3
9546: PPUSH
9547: LD_INT 0
9549: PPUSH
9550: LD_EXP 21
9554: PPUSH
9555: LD_INT 11
9557: PPUSH
9558: LD_INT 11
9560: PPUSH
9561: LD_EXP 42
9565: PPUSH
9566: CALL 2689 0 11
// end ;
9570: END
// every 23 23$0 do
9571: GO 9573
9573: DISABLE
// begin waves = 10 ;
9574: LD_ADDR_EXP 45
9578: PUSH
9579: LD_INT 10
9581: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 8 , difficulty_level , 3 , 3 , 3 , [ 42 , 43 , 44 , 46 , 45 , 47 ] , [ 27 , 25 , 26 , 28 ] , [ 4 , 5 , 6 , 9 , 7 ] , sideP1 ) ;
9582: LD_INT 11
9584: PPUSH
9585: LD_EXP 44
9589: PUSH
9590: LD_INT 1
9592: ARRAY
9593: PPUSH
9594: LD_INT 8
9596: PPUSH
9597: LD_EXP 21
9601: PPUSH
9602: LD_INT 3
9604: PPUSH
9605: LD_INT 3
9607: PPUSH
9608: LD_INT 3
9610: PPUSH
9611: LD_INT 42
9613: PUSH
9614: LD_INT 43
9616: PUSH
9617: LD_INT 44
9619: PUSH
9620: LD_INT 46
9622: PUSH
9623: LD_INT 45
9625: PUSH
9626: LD_INT 47
9628: PUSH
9629: EMPTY
9630: LIST
9631: LIST
9632: LIST
9633: LIST
9634: LIST
9635: LIST
9636: PPUSH
9637: LD_INT 27
9639: PUSH
9640: LD_INT 25
9642: PUSH
9643: LD_INT 26
9645: PUSH
9646: LD_INT 28
9648: PUSH
9649: EMPTY
9650: LIST
9651: LIST
9652: LIST
9653: LIST
9654: PPUSH
9655: LD_INT 4
9657: PUSH
9658: LD_INT 5
9660: PUSH
9661: LD_INT 6
9663: PUSH
9664: LD_INT 9
9666: PUSH
9667: LD_INT 7
9669: PUSH
9670: EMPTY
9671: LIST
9672: LIST
9673: LIST
9674: LIST
9675: LIST
9676: PPUSH
9677: LD_EXP 42
9681: PPUSH
9682: CALL 1010 0 11
// end ;
9686: END
// every 25 25$0 do
9687: GO 9689
9689: DISABLE
// begin waves = 11 ;
9690: LD_ADDR_EXP 45
9694: PUSH
9695: LD_INT 11
9697: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 1 , 10 , 4 , 4 , 4 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
9698: LD_EXP 44
9702: PUSH
9703: LD_INT 1
9705: ARRAY
9706: PPUSH
9707: LD_INT 1
9709: PPUSH
9710: LD_INT 10
9712: PPUSH
9713: LD_INT 4
9715: PPUSH
9716: LD_INT 4
9718: PPUSH
9719: LD_INT 4
9721: PPUSH
9722: LD_INT 0
9724: PPUSH
9725: LD_EXP 21
9729: PPUSH
9730: LD_INT 11
9732: PPUSH
9733: LD_INT 11
9735: PPUSH
9736: LD_EXP 42
9740: PPUSH
9741: CALL 2689 0 11
// end ;
9745: END
// every 25 25$0 do
9746: GO 9748
9748: DISABLE
// begin waves = 11 ;
9749: LD_ADDR_EXP 45
9753: PUSH
9754: LD_INT 11
9756: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 10 , difficulty_level , 1 , 3 , 3 , [ 42 , 43 , 44 , 46 , 45 , 47 ] , [ 27 , 25 , 26 , 28 ] , [ 4 , 5 , 6 , 9 , 7 , 10 ] , sideP1 ) ;
9757: LD_INT 11
9759: PPUSH
9760: LD_EXP 44
9764: PUSH
9765: LD_INT 1
9767: ARRAY
9768: PPUSH
9769: LD_INT 10
9771: PPUSH
9772: LD_EXP 21
9776: PPUSH
9777: LD_INT 1
9779: PPUSH
9780: LD_INT 3
9782: PPUSH
9783: LD_INT 3
9785: PPUSH
9786: LD_INT 42
9788: PUSH
9789: LD_INT 43
9791: PUSH
9792: LD_INT 44
9794: PUSH
9795: LD_INT 46
9797: PUSH
9798: LD_INT 45
9800: PUSH
9801: LD_INT 47
9803: PUSH
9804: EMPTY
9805: LIST
9806: LIST
9807: LIST
9808: LIST
9809: LIST
9810: LIST
9811: PPUSH
9812: LD_INT 27
9814: PUSH
9815: LD_INT 25
9817: PUSH
9818: LD_INT 26
9820: PUSH
9821: LD_INT 28
9823: PUSH
9824: EMPTY
9825: LIST
9826: LIST
9827: LIST
9828: LIST
9829: PPUSH
9830: LD_INT 4
9832: PUSH
9833: LD_INT 5
9835: PUSH
9836: LD_INT 6
9838: PUSH
9839: LD_INT 9
9841: PUSH
9842: LD_INT 7
9844: PUSH
9845: LD_INT 10
9847: PUSH
9848: EMPTY
9849: LIST
9850: LIST
9851: LIST
9852: LIST
9853: LIST
9854: LIST
9855: PPUSH
9856: LD_EXP 42
9860: PPUSH
9861: CALL 1010 0 11
// end ;
9865: END
// every 28 28$0 do
9866: GO 9868
9868: DISABLE
// begin waves = 12 ;
9869: LD_ADDR_EXP 45
9873: PUSH
9874: LD_INT 12
9876: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 1 , 15 , 6 , 6 , 6 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
9877: LD_EXP 44
9881: PUSH
9882: LD_INT 1
9884: ARRAY
9885: PPUSH
9886: LD_INT 1
9888: PPUSH
9889: LD_INT 15
9891: PPUSH
9892: LD_INT 6
9894: PPUSH
9895: LD_INT 6
9897: PPUSH
9898: LD_INT 6
9900: PPUSH
9901: LD_INT 0
9903: PPUSH
9904: LD_EXP 21
9908: PPUSH
9909: LD_INT 11
9911: PPUSH
9912: LD_INT 11
9914: PPUSH
9915: LD_EXP 42
9919: PPUSH
9920: CALL 2689 0 11
// end ;
9924: END
// every 28 28$0 do
9925: GO 9927
9927: DISABLE
// begin waves = 12 ;
9928: LD_ADDR_EXP 45
9932: PUSH
9933: LD_INT 12
9935: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 12 , difficulty_level , 2 , 3 , 5 , [ 42 , 43 , 44 , 46 , 45 , 47 ] , [ 27 , 25 , 26 , 28 , 29 ] , [ 4 , 5 , 6 , 9 , 7 , 10 ] , sideP1 ) ;
9936: LD_INT 11
9938: PPUSH
9939: LD_EXP 44
9943: PUSH
9944: LD_INT 1
9946: ARRAY
9947: PPUSH
9948: LD_INT 12
9950: PPUSH
9951: LD_EXP 21
9955: PPUSH
9956: LD_INT 2
9958: PPUSH
9959: LD_INT 3
9961: PPUSH
9962: LD_INT 5
9964: PPUSH
9965: LD_INT 42
9967: PUSH
9968: LD_INT 43
9970: PUSH
9971: LD_INT 44
9973: PUSH
9974: LD_INT 46
9976: PUSH
9977: LD_INT 45
9979: PUSH
9980: LD_INT 47
9982: PUSH
9983: EMPTY
9984: LIST
9985: LIST
9986: LIST
9987: LIST
9988: LIST
9989: LIST
9990: PPUSH
9991: LD_INT 27
9993: PUSH
9994: LD_INT 25
9996: PUSH
9997: LD_INT 26
9999: PUSH
10000: LD_INT 28
10002: PUSH
10003: LD_INT 29
10005: PUSH
10006: EMPTY
10007: LIST
10008: LIST
10009: LIST
10010: LIST
10011: LIST
10012: PPUSH
10013: LD_INT 4
10015: PUSH
10016: LD_INT 5
10018: PUSH
10019: LD_INT 6
10021: PUSH
10022: LD_INT 9
10024: PUSH
10025: LD_INT 7
10027: PUSH
10028: LD_INT 10
10030: PUSH
10031: EMPTY
10032: LIST
10033: LIST
10034: LIST
10035: LIST
10036: LIST
10037: LIST
10038: PPUSH
10039: LD_EXP 42
10043: PPUSH
10044: CALL 1010 0 11
// end ;
10048: END
// every 31 31$0 do
10049: GO 10051
10051: DISABLE
// begin waves = 13 ;
10052: LD_ADDR_EXP 45
10056: PUSH
10057: LD_INT 13
10059: ST_TO_ADDR
// RespawnAttackInfantry ( randomedColors [ 1 ] , 3 , 18 , 6 , 6 , 6 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
10060: LD_EXP 44
10064: PUSH
10065: LD_INT 1
10067: ARRAY
10068: PPUSH
10069: LD_INT 3
10071: PPUSH
10072: LD_INT 18
10074: PPUSH
10075: LD_INT 6
10077: PPUSH
10078: LD_INT 6
10080: PPUSH
10081: LD_INT 6
10083: PPUSH
10084: LD_INT 0
10086: PPUSH
10087: LD_EXP 21
10091: PPUSH
10092: LD_INT 11
10094: PPUSH
10095: LD_INT 11
10097: PPUSH
10098: LD_EXP 42
10102: PPUSH
10103: CALL 2689 0 11
// end ;
10107: END
// every 31 31$0 do
10108: GO 10110
10110: DISABLE
// begin waves = 13 ;
10111: LD_ADDR_EXP 45
10115: PUSH
10116: LD_INT 13
10118: ST_TO_ADDR
// RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 15 , difficulty_level , 3 , 3 , 5 , [ 42 , 43 , 44 , 46 , 45 , 47 ] , [ 27 , 25 , 26 , 28 , 29 ] , [ 4 , 5 , 6 , 9 , 7 , 10 ] , sideP1 ) ;
10119: LD_INT 11
10121: PPUSH
10122: LD_EXP 44
10126: PUSH
10127: LD_INT 1
10129: ARRAY
10130: PPUSH
10131: LD_INT 15
10133: PPUSH
10134: LD_EXP 21
10138: PPUSH
10139: LD_INT 3
10141: PPUSH
10142: LD_INT 3
10144: PPUSH
10145: LD_INT 5
10147: PPUSH
10148: LD_INT 42
10150: PUSH
10151: LD_INT 43
10153: PUSH
10154: LD_INT 44
10156: PUSH
10157: LD_INT 46
10159: PUSH
10160: LD_INT 45
10162: PUSH
10163: LD_INT 47
10165: PUSH
10166: EMPTY
10167: LIST
10168: LIST
10169: LIST
10170: LIST
10171: LIST
10172: LIST
10173: PPUSH
10174: LD_INT 27
10176: PUSH
10177: LD_INT 25
10179: PUSH
10180: LD_INT 26
10182: PUSH
10183: LD_INT 28
10185: PUSH
10186: LD_INT 29
10188: PUSH
10189: EMPTY
10190: LIST
10191: LIST
10192: LIST
10193: LIST
10194: LIST
10195: PPUSH
10196: LD_INT 4
10198: PUSH
10199: LD_INT 5
10201: PUSH
10202: LD_INT 6
10204: PUSH
10205: LD_INT 9
10207: PUSH
10208: LD_INT 7
10210: PUSH
10211: LD_INT 10
10213: PUSH
10214: EMPTY
10215: LIST
10216: LIST
10217: LIST
10218: LIST
10219: LIST
10220: LIST
10221: PPUSH
10222: LD_EXP 42
10226: PPUSH
10227: CALL 1010 0 11
// end ;
10231: END
// every 35 35$0 do
10232: GO 10234
10234: DISABLE
// begin RespawnAttackInfantry ( randomedColors [ 1 ] , 2 , 18 , 6 , 6 , 6 , 0 , difficulty_level , AttackSpawn , AttackSpawn , sideP1 ) ;
10235: LD_EXP 44
10239: PUSH
10240: LD_INT 1
10242: ARRAY
10243: PPUSH
10244: LD_INT 2
10246: PPUSH
10247: LD_INT 18
10249: PPUSH
10250: LD_INT 6
10252: PPUSH
10253: LD_INT 6
10255: PPUSH
10256: LD_INT 6
10258: PPUSH
10259: LD_INT 0
10261: PPUSH
10262: LD_EXP 21
10266: PPUSH
10267: LD_INT 11
10269: PPUSH
10270: LD_INT 11
10272: PPUSH
10273: LD_EXP 42
10277: PPUSH
10278: CALL 2689 0 11
// end ;
10282: END
// every 35 35$0 do
10283: GO 10285
10285: DISABLE
// begin RespawnAttackVehicle ( AttackSpawn , randomedColors [ 1 ] , 18 , difficulty_level , 2 , 3 , 5 , [ 42 , 43 , 44 , 46 , 45 , 47 ] , [ 27 , 25 , 26 , 28 , 29 ] , [ 4 , 5 , 6 , 9 , 7 , 10 ] , sideP1 ) ;
10286: LD_INT 11
10288: PPUSH
10289: LD_EXP 44
10293: PUSH
10294: LD_INT 1
10296: ARRAY
10297: PPUSH
10298: LD_INT 18
10300: PPUSH
10301: LD_EXP 21
10305: PPUSH
10306: LD_INT 2
10308: PPUSH
10309: LD_INT 3
10311: PPUSH
10312: LD_INT 5
10314: PPUSH
10315: LD_INT 42
10317: PUSH
10318: LD_INT 43
10320: PUSH
10321: LD_INT 44
10323: PUSH
10324: LD_INT 46
10326: PUSH
10327: LD_INT 45
10329: PUSH
10330: LD_INT 47
10332: PUSH
10333: EMPTY
10334: LIST
10335: LIST
10336: LIST
10337: LIST
10338: LIST
10339: LIST
10340: PPUSH
10341: LD_INT 27
10343: PUSH
10344: LD_INT 25
10346: PUSH
10347: LD_INT 26
10349: PUSH
10350: LD_INT 28
10352: PUSH
10353: LD_INT 29
10355: PUSH
10356: EMPTY
10357: LIST
10358: LIST
10359: LIST
10360: LIST
10361: LIST
10362: PPUSH
10363: LD_INT 4
10365: PUSH
10366: LD_INT 5
10368: PUSH
10369: LD_INT 6
10371: PUSH
10372: LD_INT 9
10374: PUSH
10375: LD_INT 7
10377: PUSH
10378: LD_INT 10
10380: PUSH
10381: EMPTY
10382: LIST
10383: LIST
10384: LIST
10385: LIST
10386: LIST
10387: LIST
10388: PPUSH
10389: LD_EXP 42
10393: PPUSH
10394: CALL 1010 0 11
// end ;
10398: END
// every 35 35$15 do
10399: GO 10401
10401: DISABLE
// waves = 14 ; end_of_file
10402: LD_ADDR_EXP 45
10406: PUSH
10407: LD_INT 14
10409: ST_TO_ADDR
10410: END
// every 0 0$1 trigger waves = 1 do
10411: LD_EXP 45
10415: PUSH
10416: LD_INT 1
10418: EQUAL
10419: IFFALSE 10694
10421: GO 10423
10423: DISABLE
// begin SetRestrict ( b_lab , sideP1 , true ) ;
10424: LD_INT 6
10426: PPUSH
10427: LD_EXP 42
10431: PPUSH
10432: LD_INT 1
10434: PPUSH
10435: CALL_OW 324
// SetRestrict ( b_lab_basic , sideP1 , true ) ;
10439: LD_INT 9
10441: PPUSH
10442: LD_EXP 42
10446: PPUSH
10447: LD_INT 1
10449: PPUSH
10450: CALL_OW 324
// SetRestrict ( 2 , sideP1 , true ) ;
10454: LD_INT 2
10456: PPUSH
10457: LD_EXP 42
10461: PPUSH
10462: LD_INT 1
10464: PPUSH
10465: CALL_OW 324
// SetRestrict ( 29 , sideP1 , true ) ;
10469: LD_INT 29
10471: PPUSH
10472: LD_EXP 42
10476: PPUSH
10477: LD_INT 1
10479: PPUSH
10480: CALL_OW 324
// SetRestrict ( 4 , sideP1 , true ) ;
10484: LD_INT 4
10486: PPUSH
10487: LD_EXP 42
10491: PPUSH
10492: LD_INT 1
10494: PPUSH
10495: CALL_OW 324
// SetRestrict ( 26 , sideP1 , true ) ;
10499: LD_INT 26
10501: PPUSH
10502: LD_EXP 42
10506: PPUSH
10507: LD_INT 1
10509: PPUSH
10510: CALL_OW 324
// SetRestrict ( 27 , sideP1 , true ) ;
10514: LD_INT 27
10516: PPUSH
10517: LD_EXP 42
10521: PPUSH
10522: LD_INT 1
10524: PPUSH
10525: CALL_OW 324
// SetTech ( tech_SolPow , sideP1 , state_enabled ) ;
10529: LD_INT 35
10531: PPUSH
10532: LD_EXP 42
10536: PPUSH
10537: LD_INT 1
10539: PPUSH
10540: CALL_OW 322
// SetTech ( tech_OilPow , sideP1 , state_enabled ) ;
10544: LD_INT 46
10546: PPUSH
10547: LD_EXP 42
10551: PPUSH
10552: LD_INT 1
10554: PPUSH
10555: CALL_OW 322
// SetRestrict ( b_lab , sideP2 , true ) ;
10559: LD_INT 6
10561: PPUSH
10562: LD_EXP 43
10566: PPUSH
10567: LD_INT 1
10569: PPUSH
10570: CALL_OW 324
// SetRestrict ( b_lab_basic , sideP2 , true ) ;
10574: LD_INT 9
10576: PPUSH
10577: LD_EXP 43
10581: PPUSH
10582: LD_INT 1
10584: PPUSH
10585: CALL_OW 324
// SetRestrict ( 2 , sideP2 , true ) ;
10589: LD_INT 2
10591: PPUSH
10592: LD_EXP 43
10596: PPUSH
10597: LD_INT 1
10599: PPUSH
10600: CALL_OW 324
// SetRestrict ( 29 , sideP2 , true ) ;
10604: LD_INT 29
10606: PPUSH
10607: LD_EXP 43
10611: PPUSH
10612: LD_INT 1
10614: PPUSH
10615: CALL_OW 324
// SetRestrict ( 4 , sideP2 , true ) ;
10619: LD_INT 4
10621: PPUSH
10622: LD_EXP 43
10626: PPUSH
10627: LD_INT 1
10629: PPUSH
10630: CALL_OW 324
// SetRestrict ( 26 , sideP2 , true ) ;
10634: LD_INT 26
10636: PPUSH
10637: LD_EXP 43
10641: PPUSH
10642: LD_INT 1
10644: PPUSH
10645: CALL_OW 324
// SetRestrict ( 27 , sideP2 , true ) ;
10649: LD_INT 27
10651: PPUSH
10652: LD_EXP 43
10656: PPUSH
10657: LD_INT 1
10659: PPUSH
10660: CALL_OW 324
// SetTech ( tech_SolPow , sideP2 , state_enabled ) ;
10664: LD_INT 35
10666: PPUSH
10667: LD_EXP 43
10671: PPUSH
10672: LD_INT 1
10674: PPUSH
10675: CALL_OW 322
// SetTech ( tech_OilPow , sideP2 , state_enabled ) ;
10679: LD_INT 46
10681: PPUSH
10682: LD_EXP 43
10686: PPUSH
10687: LD_INT 1
10689: PPUSH
10690: CALL_OW 322
// end ;
10694: END
// every 0 0$1 trigger waves = 2 do
10695: LD_EXP 45
10699: PUSH
10700: LD_INT 2
10702: EQUAL
10703: IFFALSE 10798
10705: GO 10707
10707: DISABLE
// begin SetTech ( tech_SolEng , sideP1 , state_enabled ) ;
10708: LD_INT 45
10710: PPUSH
10711: LD_EXP 42
10715: PPUSH
10716: LD_INT 1
10718: PPUSH
10719: CALL_OW 322
// SetTech ( tech_OilEng , sideP1 , state_enabled ) ;
10723: LD_INT 47
10725: PPUSH
10726: LD_EXP 42
10730: PPUSH
10731: LD_INT 1
10733: PPUSH
10734: CALL_OW 322
// SetTech ( tech_Tech1 , sideP1 , state_enabled ) ;
10738: LD_INT 48
10740: PPUSH
10741: LD_EXP 42
10745: PPUSH
10746: LD_INT 1
10748: PPUSH
10749: CALL_OW 322
// SetTech ( tech_SolEng , sideP2 , state_enabled ) ;
10753: LD_INT 45
10755: PPUSH
10756: LD_EXP 43
10760: PPUSH
10761: LD_INT 1
10763: PPUSH
10764: CALL_OW 322
// SetTech ( tech_OilEng , sideP2 , state_enabled ) ;
10768: LD_INT 47
10770: PPUSH
10771: LD_EXP 43
10775: PPUSH
10776: LD_INT 1
10778: PPUSH
10779: CALL_OW 322
// SetTech ( tech_Tech1 , sideP2 , state_enabled ) ;
10783: LD_INT 48
10785: PPUSH
10786: LD_EXP 43
10790: PPUSH
10791: LD_INT 1
10793: PPUSH
10794: CALL_OW 322
// end ;
10798: END
// every 0 0$1 trigger waves = 3 do
10799: LD_EXP 45
10803: PUSH
10804: LD_INT 3
10806: EQUAL
10807: IFFALSE 11082
10809: GO 10811
10811: DISABLE
// begin SetRestrict ( 7 , sideP1 , true ) ;
10812: LD_INT 7
10814: PPUSH
10815: LD_EXP 42
10819: PPUSH
10820: LD_INT 1
10822: PPUSH
10823: CALL_OW 324
// SetRestrict ( 3 , sideP1 , true ) ;
10827: LD_INT 3
10829: PPUSH
10830: LD_EXP 42
10834: PPUSH
10835: LD_INT 1
10837: PPUSH
10838: CALL_OW 324
// SetRestrict ( 10 , sideP1 , true ) ;
10842: LD_INT 10
10844: PPUSH
10845: LD_EXP 42
10849: PPUSH
10850: LD_INT 1
10852: PPUSH
10853: CALL_OW 324
// SetRestrict ( 19 , sideP1 , true ) ;
10857: LD_INT 19
10859: PPUSH
10860: LD_EXP 42
10864: PPUSH
10865: LD_INT 1
10867: PPUSH
10868: CALL_OW 324
// SetRestrict ( 32 , sideP1 , true ) ;
10872: LD_INT 32
10874: PPUSH
10875: LD_EXP 42
10879: PPUSH
10880: LD_INT 1
10882: PPUSH
10883: CALL_OW 324
// SetRestrict ( 23 , sideP1 , true ) ;
10887: LD_INT 23
10889: PPUSH
10890: LD_EXP 42
10894: PPUSH
10895: LD_INT 1
10897: PPUSH
10898: CALL_OW 324
// SetTech ( 1 , sideP1 , state_enabled ) ;
10902: LD_INT 1
10904: PPUSH
10905: LD_EXP 42
10909: PPUSH
10910: LD_INT 1
10912: PPUSH
10913: CALL_OW 322
// SetTech ( 69 , sideP1 , state_enabled ) ;
10917: LD_INT 69
10919: PPUSH
10920: LD_EXP 42
10924: PPUSH
10925: LD_INT 1
10927: PPUSH
10928: CALL_OW 322
// SetTech ( 70 , sideP1 , state_enabled ) ;
10932: LD_INT 70
10934: PPUSH
10935: LD_EXP 42
10939: PPUSH
10940: LD_INT 1
10942: PPUSH
10943: CALL_OW 322
// SetRestrict ( 7 , sideP2 , true ) ;
10947: LD_INT 7
10949: PPUSH
10950: LD_EXP 43
10954: PPUSH
10955: LD_INT 1
10957: PPUSH
10958: CALL_OW 324
// SetRestrict ( 3 , sideP2 , true ) ;
10962: LD_INT 3
10964: PPUSH
10965: LD_EXP 43
10969: PPUSH
10970: LD_INT 1
10972: PPUSH
10973: CALL_OW 324
// SetRestrict ( 10 , sideP2 , true ) ;
10977: LD_INT 10
10979: PPUSH
10980: LD_EXP 43
10984: PPUSH
10985: LD_INT 1
10987: PPUSH
10988: CALL_OW 324
// SetRestrict ( 19 , sideP2 , true ) ;
10992: LD_INT 19
10994: PPUSH
10995: LD_EXP 43
10999: PPUSH
11000: LD_INT 1
11002: PPUSH
11003: CALL_OW 324
// SetRestrict ( 32 , sideP2 , true ) ;
11007: LD_INT 32
11009: PPUSH
11010: LD_EXP 43
11014: PPUSH
11015: LD_INT 1
11017: PPUSH
11018: CALL_OW 324
// SetRestrict ( 23 , sideP2 , true ) ;
11022: LD_INT 23
11024: PPUSH
11025: LD_EXP 43
11029: PPUSH
11030: LD_INT 1
11032: PPUSH
11033: CALL_OW 324
// SetTech ( 1 , sideP2 , state_enabled ) ;
11037: LD_INT 1
11039: PPUSH
11040: LD_EXP 43
11044: PPUSH
11045: LD_INT 1
11047: PPUSH
11048: CALL_OW 322
// SetTech ( 69 , sideP2 , state_enabled ) ;
11052: LD_INT 69
11054: PPUSH
11055: LD_EXP 43
11059: PPUSH
11060: LD_INT 1
11062: PPUSH
11063: CALL_OW 322
// SetTech ( 70 , sideP2 , state_enabled ) ;
11067: LD_INT 70
11069: PPUSH
11070: LD_EXP 43
11074: PPUSH
11075: LD_INT 1
11077: PPUSH
11078: CALL_OW 322
// end ;
11082: END
// every 0 0$1 trigger waves = 4 do
11083: LD_EXP 45
11087: PUSH
11088: LD_INT 4
11090: EQUAL
11091: IFFALSE 11516
11093: GO 11095
11095: DISABLE
// begin SetRestrict ( 16 , sideP1 , true ) ;
11096: LD_INT 16
11098: PPUSH
11099: LD_EXP 42
11103: PPUSH
11104: LD_INT 1
11106: PPUSH
11107: CALL_OW 324
// SetRestrict ( 17 , sideP1 , true ) ;
11111: LD_INT 17
11113: PPUSH
11114: LD_EXP 42
11118: PPUSH
11119: LD_INT 1
11121: PPUSH
11122: CALL_OW 324
// SetTech ( 2 , sideP1 , state_enabled ) ;
11126: LD_INT 2
11128: PPUSH
11129: LD_EXP 42
11133: PPUSH
11134: LD_INT 1
11136: PPUSH
11137: CALL_OW 322
// SetTech ( 11 , sideP1 , state_enabled ) ;
11141: LD_INT 11
11143: PPUSH
11144: LD_EXP 42
11148: PPUSH
11149: LD_INT 1
11151: PPUSH
11152: CALL_OW 322
// SetTech ( 39 , sideP1 , state_enabled ) ;
11156: LD_INT 39
11158: PPUSH
11159: LD_EXP 42
11163: PPUSH
11164: LD_INT 1
11166: PPUSH
11167: CALL_OW 322
// SetTech ( 49 , sideP1 , state_enabled ) ;
11171: LD_INT 49
11173: PPUSH
11174: LD_EXP 42
11178: PPUSH
11179: LD_INT 1
11181: PPUSH
11182: CALL_OW 322
// SetTech ( 51 , sideP1 , state_enabled ) ;
11186: LD_INT 51
11188: PPUSH
11189: LD_EXP 42
11193: PPUSH
11194: LD_INT 1
11196: PPUSH
11197: CALL_OW 322
// SetRestrict ( 16 , sideP2 , true ) ;
11201: LD_INT 16
11203: PPUSH
11204: LD_EXP 43
11208: PPUSH
11209: LD_INT 1
11211: PPUSH
11212: CALL_OW 324
// SetRestrict ( 17 , sideP2 , true ) ;
11216: LD_INT 17
11218: PPUSH
11219: LD_EXP 43
11223: PPUSH
11224: LD_INT 1
11226: PPUSH
11227: CALL_OW 324
// SetTech ( 2 , sideP2 , state_enabled ) ;
11231: LD_INT 2
11233: PPUSH
11234: LD_EXP 43
11238: PPUSH
11239: LD_INT 1
11241: PPUSH
11242: CALL_OW 322
// SetTech ( 11 , sideP2 , state_enabled ) ;
11246: LD_INT 11
11248: PPUSH
11249: LD_EXP 43
11253: PPUSH
11254: LD_INT 1
11256: PPUSH
11257: CALL_OW 322
// SetTech ( 39 , sideP2 , state_enabled ) ;
11261: LD_INT 39
11263: PPUSH
11264: LD_EXP 43
11268: PPUSH
11269: LD_INT 1
11271: PPUSH
11272: CALL_OW 322
// SetTech ( 49 , sideP2 , state_enabled ) ;
11276: LD_INT 49
11278: PPUSH
11279: LD_EXP 43
11283: PPUSH
11284: LD_INT 1
11286: PPUSH
11287: CALL_OW 322
// SetTech ( 51 , sideP2 , state_enabled ) ;
11291: LD_INT 51
11293: PPUSH
11294: LD_EXP 43
11298: PPUSH
11299: LD_INT 1
11301: PPUSH
11302: CALL_OW 322
// SetRestrict ( 16 , sideP2 , true ) ;
11306: LD_INT 16
11308: PPUSH
11309: LD_EXP 43
11313: PPUSH
11314: LD_INT 1
11316: PPUSH
11317: CALL_OW 324
// SetRestrict ( 17 , sideP2 , true ) ;
11321: LD_INT 17
11323: PPUSH
11324: LD_EXP 43
11328: PPUSH
11329: LD_INT 1
11331: PPUSH
11332: CALL_OW 324
// SetTech ( 2 , sideP2 , state_enabled ) ;
11336: LD_INT 2
11338: PPUSH
11339: LD_EXP 43
11343: PPUSH
11344: LD_INT 1
11346: PPUSH
11347: CALL_OW 322
// SetTech ( 11 , sideP2 , state_enabled ) ;
11351: LD_INT 11
11353: PPUSH
11354: LD_EXP 43
11358: PPUSH
11359: LD_INT 1
11361: PPUSH
11362: CALL_OW 322
// SetTech ( 39 , sideP2 , state_enabled ) ;
11366: LD_INT 39
11368: PPUSH
11369: LD_EXP 43
11373: PPUSH
11374: LD_INT 1
11376: PPUSH
11377: CALL_OW 322
// SetTech ( 49 , sideP2 , state_enabled ) ;
11381: LD_INT 49
11383: PPUSH
11384: LD_EXP 43
11388: PPUSH
11389: LD_INT 1
11391: PPUSH
11392: CALL_OW 322
// SetTech ( 51 , sideP2 , state_enabled ) ;
11396: LD_INT 51
11398: PPUSH
11399: LD_EXP 43
11403: PPUSH
11404: LD_INT 1
11406: PPUSH
11407: CALL_OW 322
// SetRestrict ( 16 , sideP2 , true ) ;
11411: LD_INT 16
11413: PPUSH
11414: LD_EXP 43
11418: PPUSH
11419: LD_INT 1
11421: PPUSH
11422: CALL_OW 324
// SetRestrict ( 17 , sideP2 , true ) ;
11426: LD_INT 17
11428: PPUSH
11429: LD_EXP 43
11433: PPUSH
11434: LD_INT 1
11436: PPUSH
11437: CALL_OW 324
// SetTech ( 2 , sideP2 , state_enabled ) ;
11441: LD_INT 2
11443: PPUSH
11444: LD_EXP 43
11448: PPUSH
11449: LD_INT 1
11451: PPUSH
11452: CALL_OW 322
// SetTech ( 11 , sideP2 , state_enabled ) ;
11456: LD_INT 11
11458: PPUSH
11459: LD_EXP 43
11463: PPUSH
11464: LD_INT 1
11466: PPUSH
11467: CALL_OW 322
// SetTech ( 39 , sideP2 , state_enabled ) ;
11471: LD_INT 39
11473: PPUSH
11474: LD_EXP 43
11478: PPUSH
11479: LD_INT 1
11481: PPUSH
11482: CALL_OW 322
// SetTech ( 49 , sideP2 , state_enabled ) ;
11486: LD_INT 49
11488: PPUSH
11489: LD_EXP 43
11493: PPUSH
11494: LD_INT 1
11496: PPUSH
11497: CALL_OW 322
// SetTech ( 52 , sideP2 , state_enabled ) ;
11501: LD_INT 52
11503: PPUSH
11504: LD_EXP 43
11508: PPUSH
11509: LD_INT 1
11511: PPUSH
11512: CALL_OW 322
// end ;
11516: END
// every 0 0$1 trigger waves = 5 do
11517: LD_EXP 45
11521: PUSH
11522: LD_INT 5
11524: EQUAL
11525: IFFALSE 11890
11527: GO 11529
11529: DISABLE
// begin SetRestrict ( 5 , sideP1 , true ) ;
11530: LD_INT 5
11532: PPUSH
11533: LD_EXP 42
11537: PPUSH
11538: LD_INT 1
11540: PPUSH
11541: CALL_OW 324
// SetRestrict ( 30 , sideP1 , true ) ;
11545: LD_INT 30
11547: PPUSH
11548: LD_EXP 42
11552: PPUSH
11553: LD_INT 1
11555: PPUSH
11556: CALL_OW 324
// SetRestrict ( 15 , sideP1 , true ) ;
11560: LD_INT 15
11562: PPUSH
11563: LD_EXP 42
11567: PPUSH
11568: LD_INT 1
11570: PPUSH
11571: CALL_OW 324
// SetRestrict ( 20 , sideP1 , true ) ;
11575: LD_INT 20
11577: PPUSH
11578: LD_EXP 42
11582: PPUSH
11583: LD_INT 1
11585: PPUSH
11586: CALL_OW 324
// SetRestrict ( 12 , sideP1 , true ) ;
11590: LD_INT 12
11592: PPUSH
11593: LD_EXP 42
11597: PPUSH
11598: LD_INT 1
11600: PPUSH
11601: CALL_OW 324
// SetRestrict ( 8 , sideP1 , true ) ;
11605: LD_INT 8
11607: PPUSH
11608: LD_EXP 42
11612: PPUSH
11613: LD_INT 1
11615: PPUSH
11616: CALL_OW 324
// SetTech ( 20 , sideP1 , state_enabled ) ;
11620: LD_INT 20
11622: PPUSH
11623: LD_EXP 42
11627: PPUSH
11628: LD_INT 1
11630: PPUSH
11631: CALL_OW 322
// SetTech ( 12 , sideP1 , state_enabled ) ;
11635: LD_INT 12
11637: PPUSH
11638: LD_EXP 42
11642: PPUSH
11643: LD_INT 1
11645: PPUSH
11646: CALL_OW 322
// SetTech ( 6 , sideP1 , state_enabled ) ;
11650: LD_INT 6
11652: PPUSH
11653: LD_EXP 42
11657: PPUSH
11658: LD_INT 1
11660: PPUSH
11661: CALL_OW 322
// SetTech ( 44 , sideP1 , state_enabled ) ;
11665: LD_INT 44
11667: PPUSH
11668: LD_EXP 42
11672: PPUSH
11673: LD_INT 1
11675: PPUSH
11676: CALL_OW 322
// SetTech ( 9 , sideP1 , state_enabled ) ;
11680: LD_INT 9
11682: PPUSH
11683: LD_EXP 42
11687: PPUSH
11688: LD_INT 1
11690: PPUSH
11691: CALL_OW 322
// SetTech ( 41 , sideP1 , state_enabled ) ;
11695: LD_INT 41
11697: PPUSH
11698: LD_EXP 42
11702: PPUSH
11703: LD_INT 1
11705: PPUSH
11706: CALL_OW 322
// SetRestrict ( 5 , sideP2 , true ) ;
11710: LD_INT 5
11712: PPUSH
11713: LD_EXP 43
11717: PPUSH
11718: LD_INT 1
11720: PPUSH
11721: CALL_OW 324
// SetRestrict ( 30 , sideP2 , true ) ;
11725: LD_INT 30
11727: PPUSH
11728: LD_EXP 43
11732: PPUSH
11733: LD_INT 1
11735: PPUSH
11736: CALL_OW 324
// SetRestrict ( 15 , sideP2 , true ) ;
11740: LD_INT 15
11742: PPUSH
11743: LD_EXP 43
11747: PPUSH
11748: LD_INT 1
11750: PPUSH
11751: CALL_OW 324
// SetRestrict ( 20 , sideP2 , true ) ;
11755: LD_INT 20
11757: PPUSH
11758: LD_EXP 43
11762: PPUSH
11763: LD_INT 1
11765: PPUSH
11766: CALL_OW 324
// SetRestrict ( 12 , sideP2 , true ) ;
11770: LD_INT 12
11772: PPUSH
11773: LD_EXP 43
11777: PPUSH
11778: LD_INT 1
11780: PPUSH
11781: CALL_OW 324
// SetTech ( 20 , sideP2 , state_enabled ) ;
11785: LD_INT 20
11787: PPUSH
11788: LD_EXP 43
11792: PPUSH
11793: LD_INT 1
11795: PPUSH
11796: CALL_OW 322
// SetTech ( 12 , sideP2 , state_enabled ) ;
11800: LD_INT 12
11802: PPUSH
11803: LD_EXP 43
11807: PPUSH
11808: LD_INT 1
11810: PPUSH
11811: CALL_OW 322
// SetTech ( 6 , sideP2 , state_enabled ) ;
11815: LD_INT 6
11817: PPUSH
11818: LD_EXP 43
11822: PPUSH
11823: LD_INT 1
11825: PPUSH
11826: CALL_OW 322
// SetTech ( 44 , sideP2 , state_enabled ) ;
11830: LD_INT 44
11832: PPUSH
11833: LD_EXP 43
11837: PPUSH
11838: LD_INT 1
11840: PPUSH
11841: CALL_OW 322
// SetTech ( 9 , sideP2 , state_enabled ) ;
11845: LD_INT 9
11847: PPUSH
11848: LD_EXP 43
11852: PPUSH
11853: LD_INT 1
11855: PPUSH
11856: CALL_OW 322
// SetTech ( 41 , sideP2 , state_enabled ) ;
11860: LD_INT 41
11862: PPUSH
11863: LD_EXP 43
11867: PPUSH
11868: LD_INT 1
11870: PPUSH
11871: CALL_OW 322
// SetRestrict ( 8 , sideP2 , true ) ;
11875: LD_INT 8
11877: PPUSH
11878: LD_EXP 43
11882: PPUSH
11883: LD_INT 1
11885: PPUSH
11886: CALL_OW 324
// end ;
11890: END
// every 0 0$1 trigger waves = 6 do
11891: LD_EXP 45
11895: PUSH
11896: LD_INT 6
11898: EQUAL
11899: IFFALSE 12324
11901: GO 11903
11903: DISABLE
// begin SetRestrict ( 36 , sideP1 , true ) ;
11904: LD_INT 36
11906: PPUSH
11907: LD_EXP 42
11911: PPUSH
11912: LD_INT 1
11914: PPUSH
11915: CALL_OW 324
// SetRestrict ( 13 , sideP1 , true ) ;
11919: LD_INT 13
11921: PPUSH
11922: LD_EXP 42
11926: PPUSH
11927: LD_INT 1
11929: PPUSH
11930: CALL_OW 324
// SetRestrict ( 1 , sideP1 , true ) ;
11934: LD_INT 1
11936: PPUSH
11937: LD_EXP 42
11941: PPUSH
11942: LD_INT 1
11944: PPUSH
11945: CALL_OW 324
// SetRestrict ( 18 , sideP1 , true ) ;
11949: LD_INT 18
11951: PPUSH
11952: LD_EXP 42
11956: PPUSH
11957: LD_INT 1
11959: PPUSH
11960: CALL_OW 324
// SetRestrict ( 33 , sideP1 , true ) ;
11964: LD_INT 33
11966: PPUSH
11967: LD_EXP 42
11971: PPUSH
11972: LD_INT 1
11974: PPUSH
11975: CALL_OW 324
// SetTech ( 40 , sideP1 , state_enabled ) ;
11979: LD_INT 40
11981: PPUSH
11982: LD_EXP 42
11986: PPUSH
11987: LD_INT 1
11989: PPUSH
11990: CALL_OW 322
// SetTech ( 52 , sideP1 , state_enabled ) ;
11994: LD_INT 52
11996: PPUSH
11997: LD_EXP 42
12001: PPUSH
12002: LD_INT 1
12004: PPUSH
12005: CALL_OW 322
// SetTech ( 15 , sideP1 , state_enabled ) ;
12009: LD_INT 15
12011: PPUSH
12012: LD_EXP 42
12016: PPUSH
12017: LD_INT 1
12019: PPUSH
12020: CALL_OW 322
// SetTech ( 7 , sideP1 , state_enabled ) ;
12024: LD_INT 7
12026: PPUSH
12027: LD_EXP 42
12031: PPUSH
12032: LD_INT 1
12034: PPUSH
12035: CALL_OW 322
// SetTech ( 34 , sideP1 , state_enabled ) ;
12039: LD_INT 34
12041: PPUSH
12042: LD_EXP 42
12046: PPUSH
12047: LD_INT 1
12049: PPUSH
12050: CALL_OW 322
// SetTech ( 32 , sideP1 , state_enabled ) ;
12054: LD_INT 32
12056: PPUSH
12057: LD_EXP 42
12061: PPUSH
12062: LD_INT 1
12064: PPUSH
12065: CALL_OW 322
// SetTech ( 5 , sideP1 , state_enabled ) ;
12069: LD_INT 5
12071: PPUSH
12072: LD_EXP 42
12076: PPUSH
12077: LD_INT 1
12079: PPUSH
12080: CALL_OW 322
// SetTech ( 42 , sideP1 , state_enabled ) ;
12084: LD_INT 42
12086: PPUSH
12087: LD_EXP 42
12091: PPUSH
12092: LD_INT 1
12094: PPUSH
12095: CALL_OW 322
// SetTech ( 18 , sideP1 , state_enabled ) ;
12099: LD_INT 18
12101: PPUSH
12102: LD_EXP 42
12106: PPUSH
12107: LD_INT 1
12109: PPUSH
12110: CALL_OW 322
// SetRestrict ( 36 , sideP2 , true ) ;
12114: LD_INT 36
12116: PPUSH
12117: LD_EXP 43
12121: PPUSH
12122: LD_INT 1
12124: PPUSH
12125: CALL_OW 324
// SetRestrict ( 13 , sideP2 , true ) ;
12129: LD_INT 13
12131: PPUSH
12132: LD_EXP 43
12136: PPUSH
12137: LD_INT 1
12139: PPUSH
12140: CALL_OW 324
// SetRestrict ( 1 , sideP2 , true ) ;
12144: LD_INT 1
12146: PPUSH
12147: LD_EXP 43
12151: PPUSH
12152: LD_INT 1
12154: PPUSH
12155: CALL_OW 324
// SetRestrict ( 18 , sideP2 , true ) ;
12159: LD_INT 18
12161: PPUSH
12162: LD_EXP 43
12166: PPUSH
12167: LD_INT 1
12169: PPUSH
12170: CALL_OW 324
// SetRestrict ( 33 , sideP2 , true ) ;
12174: LD_INT 33
12176: PPUSH
12177: LD_EXP 43
12181: PPUSH
12182: LD_INT 1
12184: PPUSH
12185: CALL_OW 324
// SetTech ( 40 , sideP2 , state_enabled ) ;
12189: LD_INT 40
12191: PPUSH
12192: LD_EXP 43
12196: PPUSH
12197: LD_INT 1
12199: PPUSH
12200: CALL_OW 322
// SetTech ( 52 , sideP2 , state_enabled ) ;
12204: LD_INT 52
12206: PPUSH
12207: LD_EXP 43
12211: PPUSH
12212: LD_INT 1
12214: PPUSH
12215: CALL_OW 322
// SetTech ( 15 , sideP2 , state_enabled ) ;
12219: LD_INT 15
12221: PPUSH
12222: LD_EXP 43
12226: PPUSH
12227: LD_INT 1
12229: PPUSH
12230: CALL_OW 322
// SetTech ( 7 , sideP2 , state_enabled ) ;
12234: LD_INT 7
12236: PPUSH
12237: LD_EXP 43
12241: PPUSH
12242: LD_INT 1
12244: PPUSH
12245: CALL_OW 322
// SetTech ( 34 , sideP2 , state_enabled ) ;
12249: LD_INT 34
12251: PPUSH
12252: LD_EXP 43
12256: PPUSH
12257: LD_INT 1
12259: PPUSH
12260: CALL_OW 322
// SetTech ( 32 , sideP2 , state_enabled ) ;
12264: LD_INT 32
12266: PPUSH
12267: LD_EXP 43
12271: PPUSH
12272: LD_INT 1
12274: PPUSH
12275: CALL_OW 322
// SetTech ( 5 , sideP2 , state_enabled ) ;
12279: LD_INT 5
12281: PPUSH
12282: LD_EXP 43
12286: PPUSH
12287: LD_INT 1
12289: PPUSH
12290: CALL_OW 322
// SetTech ( 42 , sideP2 , state_enabled ) ;
12294: LD_INT 42
12296: PPUSH
12297: LD_EXP 43
12301: PPUSH
12302: LD_INT 1
12304: PPUSH
12305: CALL_OW 322
// SetTech ( 18 , sideP2 , state_enabled ) ;
12309: LD_INT 18
12311: PPUSH
12312: LD_EXP 43
12316: PPUSH
12317: LD_INT 1
12319: PPUSH
12320: CALL_OW 322
// end ;
12324: END
// every 0 0$1 trigger waves = 7 do
12325: LD_EXP 45
12329: PUSH
12330: LD_INT 7
12332: EQUAL
12333: IFFALSE 12608
12335: GO 12337
12337: DISABLE
// begin SetRestrict ( 11 , sideP1 , true ) ;
12338: LD_INT 11
12340: PPUSH
12341: LD_EXP 42
12345: PPUSH
12346: LD_INT 1
12348: PPUSH
12349: CALL_OW 324
// SetRestrict ( 21 , sideP1 , true ) ;
12353: LD_INT 21
12355: PPUSH
12356: LD_EXP 42
12360: PPUSH
12361: LD_INT 1
12363: PPUSH
12364: CALL_OW 324
// SetRestrict ( 28 , sideP1 , true ) ;
12368: LD_INT 28
12370: PPUSH
12371: LD_EXP 42
12375: PPUSH
12376: LD_INT 1
12378: PPUSH
12379: CALL_OW 324
// SetTech ( 21 , sideP1 , state_enabled ) ;
12383: LD_INT 21
12385: PPUSH
12386: LD_EXP 42
12390: PPUSH
12391: LD_INT 1
12393: PPUSH
12394: CALL_OW 322
// SetTech ( 22 , sideP1 , state_enabled ) ;
12398: LD_INT 22
12400: PPUSH
12401: LD_EXP 42
12405: PPUSH
12406: LD_INT 1
12408: PPUSH
12409: CALL_OW 322
// SetTech ( 19 , sideP1 , state_enabled ) ;
12413: LD_INT 19
12415: PPUSH
12416: LD_EXP 42
12420: PPUSH
12421: LD_INT 1
12423: PPUSH
12424: CALL_OW 322
// SetTech ( 60 , sideP1 , state_enabled ) ;
12428: LD_INT 60
12430: PPUSH
12431: LD_EXP 42
12435: PPUSH
12436: LD_INT 1
12438: PPUSH
12439: CALL_OW 322
// SetTech ( 26 , sideP1 , state_enabled ) ;
12443: LD_INT 26
12445: PPUSH
12446: LD_EXP 42
12450: PPUSH
12451: LD_INT 1
12453: PPUSH
12454: CALL_OW 322
// SetTech ( 30 , sideP1 , state_enabled ) ;
12458: LD_INT 30
12460: PPUSH
12461: LD_EXP 42
12465: PPUSH
12466: LD_INT 1
12468: PPUSH
12469: CALL_OW 322
// SetRestrict ( 11 , sideP2 , true ) ;
12473: LD_INT 11
12475: PPUSH
12476: LD_EXP 43
12480: PPUSH
12481: LD_INT 1
12483: PPUSH
12484: CALL_OW 324
// SetRestrict ( 21 , sideP2 , true ) ;
12488: LD_INT 21
12490: PPUSH
12491: LD_EXP 43
12495: PPUSH
12496: LD_INT 1
12498: PPUSH
12499: CALL_OW 324
// SetRestrict ( 28 , sideP2 , true ) ;
12503: LD_INT 28
12505: PPUSH
12506: LD_EXP 43
12510: PPUSH
12511: LD_INT 1
12513: PPUSH
12514: CALL_OW 324
// SetTech ( 21 , sideP2 , state_enabled ) ;
12518: LD_INT 21
12520: PPUSH
12521: LD_EXP 43
12525: PPUSH
12526: LD_INT 1
12528: PPUSH
12529: CALL_OW 322
// SetTech ( 22 , sideP2 , state_enabled ) ;
12533: LD_INT 22
12535: PPUSH
12536: LD_EXP 43
12540: PPUSH
12541: LD_INT 1
12543: PPUSH
12544: CALL_OW 322
// SetTech ( 19 , sideP2 , state_enabled ) ;
12548: LD_INT 19
12550: PPUSH
12551: LD_EXP 43
12555: PPUSH
12556: LD_INT 1
12558: PPUSH
12559: CALL_OW 322
// SetTech ( 60 , sideP2 , state_enabled ) ;
12563: LD_INT 60
12565: PPUSH
12566: LD_EXP 43
12570: PPUSH
12571: LD_INT 1
12573: PPUSH
12574: CALL_OW 322
// SetTech ( 26 , sideP2 , state_enabled ) ;
12578: LD_INT 26
12580: PPUSH
12581: LD_EXP 43
12585: PPUSH
12586: LD_INT 1
12588: PPUSH
12589: CALL_OW 322
// SetTech ( 30 , sideP2 , state_enabled ) ;
12593: LD_INT 30
12595: PPUSH
12596: LD_EXP 43
12600: PPUSH
12601: LD_INT 1
12603: PPUSH
12604: CALL_OW 322
// end ;
12608: END
// every 0 0$1 trigger waves = 8 do
12609: LD_EXP 45
12613: PUSH
12614: LD_INT 8
12616: EQUAL
12617: IFFALSE 13132
12619: GO 12621
12621: DISABLE
// begin SetRestrict ( 24 , sideP1 , true ) ;
12622: LD_INT 24
12624: PPUSH
12625: LD_EXP 42
12629: PPUSH
12630: LD_INT 1
12632: PPUSH
12633: CALL_OW 324
// SetRestrict ( 33 , sideP1 , true ) ;
12637: LD_INT 33
12639: PPUSH
12640: LD_EXP 42
12644: PPUSH
12645: LD_INT 1
12647: PPUSH
12648: CALL_OW 324
// SetRestrict ( 14 , sideP1 , true ) ;
12652: LD_INT 14
12654: PPUSH
12655: LD_EXP 42
12659: PPUSH
12660: LD_INT 1
12662: PPUSH
12663: CALL_OW 324
// SetRestrict ( 24 , sideP1 , true ) ;
12667: LD_INT 24
12669: PPUSH
12670: LD_EXP 42
12674: PPUSH
12675: LD_INT 1
12677: PPUSH
12678: CALL_OW 324
// SetTech ( 11 , sideP1 , state_enabled ) ;
12682: LD_INT 11
12684: PPUSH
12685: LD_EXP 42
12689: PPUSH
12690: LD_INT 1
12692: PPUSH
12693: CALL_OW 322
// SetTech ( 21 , sideP1 , state_enabled ) ;
12697: LD_INT 21
12699: PPUSH
12700: LD_EXP 42
12704: PPUSH
12705: LD_INT 1
12707: PPUSH
12708: CALL_OW 322
// SetTech ( 28 , sideP1 , state_enabled ) ;
12712: LD_INT 28
12714: PPUSH
12715: LD_EXP 42
12719: PPUSH
12720: LD_INT 1
12722: PPUSH
12723: CALL_OW 322
// SetTech ( 29 , sideP1 , state_enabled ) ;
12727: LD_INT 29
12729: PPUSH
12730: LD_EXP 42
12734: PPUSH
12735: LD_INT 1
12737: PPUSH
12738: CALL_OW 322
// SetTech ( 43 , sideP1 , state_enabled ) ;
12742: LD_INT 43
12744: PPUSH
12745: LD_EXP 42
12749: PPUSH
12750: LD_INT 1
12752: PPUSH
12753: CALL_OW 322
// SetTech ( 21 , sideP1 , state_enabled ) ;
12757: LD_INT 21
12759: PPUSH
12760: LD_EXP 42
12764: PPUSH
12765: LD_INT 1
12767: PPUSH
12768: CALL_OW 322
// SetTech ( 3 , sideP1 , state_enabled ) ;
12772: LD_INT 3
12774: PPUSH
12775: LD_EXP 42
12779: PPUSH
12780: LD_INT 1
12782: PPUSH
12783: CALL_OW 322
// SetTech ( 4 , sideP1 , state_enabled ) ;
12787: LD_INT 4
12789: PPUSH
12790: LD_EXP 42
12794: PPUSH
12795: LD_INT 1
12797: PPUSH
12798: CALL_OW 322
// SetTech ( 55 , sideP1 , state_enabled ) ;
12802: LD_INT 55
12804: PPUSH
12805: LD_EXP 42
12809: PPUSH
12810: LD_INT 1
12812: PPUSH
12813: CALL_OW 322
// SetTech ( 27 , sideP1 , state_enabled ) ;
12817: LD_INT 27
12819: PPUSH
12820: LD_EXP 42
12824: PPUSH
12825: LD_INT 1
12827: PPUSH
12828: CALL_OW 322
// SetTech ( 57 , sideP1 , state_enabled ) ;
12832: LD_INT 57
12834: PPUSH
12835: LD_EXP 42
12839: PPUSH
12840: LD_INT 1
12842: PPUSH
12843: CALL_OW 322
// SetTech ( 50 , sideP1 , state_enabled ) ;
12847: LD_INT 50
12849: PPUSH
12850: LD_EXP 42
12854: PPUSH
12855: LD_INT 1
12857: PPUSH
12858: CALL_OW 322
// SetTech ( 50 , sideP1 , state_enabled ) ;
12862: LD_INT 50
12864: PPUSH
12865: LD_EXP 42
12869: PPUSH
12870: LD_INT 1
12872: PPUSH
12873: CALL_OW 322
// SetRestrict ( 24 , sideP2 , true ) ;
12877: LD_INT 24
12879: PPUSH
12880: LD_EXP 43
12884: PPUSH
12885: LD_INT 1
12887: PPUSH
12888: CALL_OW 324
// SetRestrict ( 33 , sideP2 , true ) ;
12892: LD_INT 33
12894: PPUSH
12895: LD_EXP 43
12899: PPUSH
12900: LD_INT 1
12902: PPUSH
12903: CALL_OW 324
// SetRestrict ( 14 , sideP2 , true ) ;
12907: LD_INT 14
12909: PPUSH
12910: LD_EXP 43
12914: PPUSH
12915: LD_INT 1
12917: PPUSH
12918: CALL_OW 324
// SetRestrict ( 24 , sideP2 , true ) ;
12922: LD_INT 24
12924: PPUSH
12925: LD_EXP 43
12929: PPUSH
12930: LD_INT 1
12932: PPUSH
12933: CALL_OW 324
// SetTech ( 11 , sideP2 , state_enabled ) ;
12937: LD_INT 11
12939: PPUSH
12940: LD_EXP 43
12944: PPUSH
12945: LD_INT 1
12947: PPUSH
12948: CALL_OW 322
// SetTech ( 21 , sideP2 , state_enabled ) ;
12952: LD_INT 21
12954: PPUSH
12955: LD_EXP 43
12959: PPUSH
12960: LD_INT 1
12962: PPUSH
12963: CALL_OW 322
// SetTech ( 28 , sideP2 , state_enabled ) ;
12967: LD_INT 28
12969: PPUSH
12970: LD_EXP 43
12974: PPUSH
12975: LD_INT 1
12977: PPUSH
12978: CALL_OW 322
// SetTech ( 29 , sideP2 , state_enabled ) ;
12982: LD_INT 29
12984: PPUSH
12985: LD_EXP 43
12989: PPUSH
12990: LD_INT 1
12992: PPUSH
12993: CALL_OW 322
// SetTech ( 43 , sideP2 , state_enabled ) ;
12997: LD_INT 43
12999: PPUSH
13000: LD_EXP 43
13004: PPUSH
13005: LD_INT 1
13007: PPUSH
13008: CALL_OW 322
// SetTech ( 21 , sideP2 , state_enabled ) ;
13012: LD_INT 21
13014: PPUSH
13015: LD_EXP 43
13019: PPUSH
13020: LD_INT 1
13022: PPUSH
13023: CALL_OW 322
// SetTech ( 3 , sideP2 , state_enabled ) ;
13027: LD_INT 3
13029: PPUSH
13030: LD_EXP 43
13034: PPUSH
13035: LD_INT 1
13037: PPUSH
13038: CALL_OW 322
// SetTech ( 4 , sideP2 , state_enabled ) ;
13042: LD_INT 4
13044: PPUSH
13045: LD_EXP 43
13049: PPUSH
13050: LD_INT 1
13052: PPUSH
13053: CALL_OW 322
// SetTech ( 55 , sideP2 , state_enabled ) ;
13057: LD_INT 55
13059: PPUSH
13060: LD_EXP 43
13064: PPUSH
13065: LD_INT 1
13067: PPUSH
13068: CALL_OW 322
// SetTech ( 27 , sideP2 , state_enabled ) ;
13072: LD_INT 27
13074: PPUSH
13075: LD_EXP 43
13079: PPUSH
13080: LD_INT 1
13082: PPUSH
13083: CALL_OW 322
// SetTech ( 57 , sideP2 , state_enabled ) ;
13087: LD_INT 57
13089: PPUSH
13090: LD_EXP 43
13094: PPUSH
13095: LD_INT 1
13097: PPUSH
13098: CALL_OW 322
// SetTech ( 50 , sideP2 , state_enabled ) ;
13102: LD_INT 50
13104: PPUSH
13105: LD_EXP 43
13109: PPUSH
13110: LD_INT 1
13112: PPUSH
13113: CALL_OW 322
// SetTech ( 50 , sideP2 , state_enabled ) ;
13117: LD_INT 50
13119: PPUSH
13120: LD_EXP 43
13124: PPUSH
13125: LD_INT 1
13127: PPUSH
13128: CALL_OW 322
// end ;
13132: END
// every 0 0$1 trigger waves = 9 do
13133: LD_EXP 45
13137: PUSH
13138: LD_INT 9
13140: EQUAL
13141: IFFALSE 13746
13143: GO 13145
13145: DISABLE
// begin SetRestrict ( 25 , sideP1 , true ) ;
13146: LD_INT 25
13148: PPUSH
13149: LD_EXP 42
13153: PPUSH
13154: LD_INT 1
13156: PPUSH
13157: CALL_OW 324
// SetTech ( 53 , sideP1 , state_enabled ) ;
13161: LD_INT 53
13163: PPUSH
13164: LD_EXP 42
13168: PPUSH
13169: LD_INT 1
13171: PPUSH
13172: CALL_OW 322
// SetTech ( 54 , sideP1 , state_enabled ) ;
13176: LD_INT 54
13178: PPUSH
13179: LD_EXP 42
13183: PPUSH
13184: LD_INT 1
13186: PPUSH
13187: CALL_OW 322
// SetTech ( 16 , sideP1 , state_enabled ) ;
13191: LD_INT 16
13193: PPUSH
13194: LD_EXP 42
13198: PPUSH
13199: LD_INT 1
13201: PPUSH
13202: CALL_OW 322
// SetTech ( 57 , sideP1 , state_enabled ) ;
13206: LD_INT 57
13208: PPUSH
13209: LD_EXP 42
13213: PPUSH
13214: LD_INT 1
13216: PPUSH
13217: CALL_OW 322
// SetTech ( 37 , sideP1 , state_enabled ) ;
13221: LD_INT 37
13223: PPUSH
13224: LD_EXP 42
13228: PPUSH
13229: LD_INT 1
13231: PPUSH
13232: CALL_OW 322
// SetTech ( 71 , sideP1 , state_enabled ) ;
13236: LD_INT 71
13238: PPUSH
13239: LD_EXP 42
13243: PPUSH
13244: LD_INT 1
13246: PPUSH
13247: CALL_OW 322
// SetTech ( 30 , sideP1 , state_enabled ) ;
13251: LD_INT 30
13253: PPUSH
13254: LD_EXP 42
13258: PPUSH
13259: LD_INT 1
13261: PPUSH
13262: CALL_OW 322
// SetTech ( 63 , sideP1 , state_enabled ) ;
13266: LD_INT 63
13268: PPUSH
13269: LD_EXP 42
13273: PPUSH
13274: LD_INT 1
13276: PPUSH
13277: CALL_OW 322
// SetTech ( 57 , sideP1 , state_enabled ) ;
13281: LD_INT 57
13283: PPUSH
13284: LD_EXP 42
13288: PPUSH
13289: LD_INT 1
13291: PPUSH
13292: CALL_OW 322
// SetTech ( 61 , sideP1 , state_enabled ) ;
13296: LD_INT 61
13298: PPUSH
13299: LD_EXP 42
13303: PPUSH
13304: LD_INT 1
13306: PPUSH
13307: CALL_OW 322
// SetTech ( 67 , sideP1 , state_enabled ) ;
13311: LD_INT 67
13313: PPUSH
13314: LD_EXP 42
13318: PPUSH
13319: LD_INT 1
13321: PPUSH
13322: CALL_OW 322
// SetTech ( 17 , sideP1 , state_enabled ) ;
13326: LD_INT 17
13328: PPUSH
13329: LD_EXP 42
13333: PPUSH
13334: LD_INT 1
13336: PPUSH
13337: CALL_OW 322
// SetTech ( 66 , sideP1 , state_enabled ) ;
13341: LD_INT 66
13343: PPUSH
13344: LD_EXP 42
13348: PPUSH
13349: LD_INT 1
13351: PPUSH
13352: CALL_OW 322
// SetTech ( 43 , sideP1 , state_enabled ) ;
13356: LD_INT 43
13358: PPUSH
13359: LD_EXP 42
13363: PPUSH
13364: LD_INT 1
13366: PPUSH
13367: CALL_OW 322
// SetTech ( 13 , sideP1 , state_enabled ) ;
13371: LD_INT 13
13373: PPUSH
13374: LD_EXP 42
13378: PPUSH
13379: LD_INT 1
13381: PPUSH
13382: CALL_OW 322
// SetTech ( 8 , sideP1 , state_enabled ) ;
13386: LD_INT 8
13388: PPUSH
13389: LD_EXP 42
13393: PPUSH
13394: LD_INT 1
13396: PPUSH
13397: CALL_OW 322
// SetTech ( 10 , sideP1 , state_enabled ) ;
13401: LD_INT 10
13403: PPUSH
13404: LD_EXP 42
13408: PPUSH
13409: LD_INT 1
13411: PPUSH
13412: CALL_OW 322
// SetTech ( 36 , sideP1 , state_enabled ) ;
13416: LD_INT 36
13418: PPUSH
13419: LD_EXP 42
13423: PPUSH
13424: LD_INT 1
13426: PPUSH
13427: CALL_OW 322
// SetTech ( 31 , sideP1 , state_enabled ) ;
13431: LD_INT 31
13433: PPUSH
13434: LD_EXP 42
13438: PPUSH
13439: LD_INT 1
13441: PPUSH
13442: CALL_OW 322
// SetRestrict ( 25 , sideP2 , true ) ;
13446: LD_INT 25
13448: PPUSH
13449: LD_EXP 43
13453: PPUSH
13454: LD_INT 1
13456: PPUSH
13457: CALL_OW 324
// SetTech ( 53 , sideP2 , state_enabled ) ;
13461: LD_INT 53
13463: PPUSH
13464: LD_EXP 43
13468: PPUSH
13469: LD_INT 1
13471: PPUSH
13472: CALL_OW 322
// SetTech ( 54 , sideP2 , state_enabled ) ;
13476: LD_INT 54
13478: PPUSH
13479: LD_EXP 43
13483: PPUSH
13484: LD_INT 1
13486: PPUSH
13487: CALL_OW 322
// SetTech ( 16 , sideP2 , state_enabled ) ;
13491: LD_INT 16
13493: PPUSH
13494: LD_EXP 43
13498: PPUSH
13499: LD_INT 1
13501: PPUSH
13502: CALL_OW 322
// SetTech ( 57 , sideP2 , state_enabled ) ;
13506: LD_INT 57
13508: PPUSH
13509: LD_EXP 43
13513: PPUSH
13514: LD_INT 1
13516: PPUSH
13517: CALL_OW 322
// SetTech ( 37 , sideP2 , state_enabled ) ;
13521: LD_INT 37
13523: PPUSH
13524: LD_EXP 43
13528: PPUSH
13529: LD_INT 1
13531: PPUSH
13532: CALL_OW 322
// SetTech ( 71 , sideP2 , state_enabled ) ;
13536: LD_INT 71
13538: PPUSH
13539: LD_EXP 43
13543: PPUSH
13544: LD_INT 1
13546: PPUSH
13547: CALL_OW 322
// SetTech ( 30 , sideP2 , state_enabled ) ;
13551: LD_INT 30
13553: PPUSH
13554: LD_EXP 43
13558: PPUSH
13559: LD_INT 1
13561: PPUSH
13562: CALL_OW 322
// SetTech ( 63 , sideP2 , state_enabled ) ;
13566: LD_INT 63
13568: PPUSH
13569: LD_EXP 43
13573: PPUSH
13574: LD_INT 1
13576: PPUSH
13577: CALL_OW 322
// SetTech ( 57 , sideP2 , state_enabled ) ;
13581: LD_INT 57
13583: PPUSH
13584: LD_EXP 43
13588: PPUSH
13589: LD_INT 1
13591: PPUSH
13592: CALL_OW 322
// SetTech ( 61 , sideP2 , state_enabled ) ;
13596: LD_INT 61
13598: PPUSH
13599: LD_EXP 43
13603: PPUSH
13604: LD_INT 1
13606: PPUSH
13607: CALL_OW 322
// SetTech ( 67 , sideP2 , state_enabled ) ;
13611: LD_INT 67
13613: PPUSH
13614: LD_EXP 43
13618: PPUSH
13619: LD_INT 1
13621: PPUSH
13622: CALL_OW 322
// SetTech ( 17 , sideP2 , state_enabled ) ;
13626: LD_INT 17
13628: PPUSH
13629: LD_EXP 43
13633: PPUSH
13634: LD_INT 1
13636: PPUSH
13637: CALL_OW 322
// SetTech ( 43 , sideP2 , state_enabled ) ;
13641: LD_INT 43
13643: PPUSH
13644: LD_EXP 43
13648: PPUSH
13649: LD_INT 1
13651: PPUSH
13652: CALL_OW 322
// SetTech ( 13 , sideP2 , state_enabled ) ;
13656: LD_INT 13
13658: PPUSH
13659: LD_EXP 43
13663: PPUSH
13664: LD_INT 1
13666: PPUSH
13667: CALL_OW 322
// SetTech ( 8 , sideP2 , state_enabled ) ;
13671: LD_INT 8
13673: PPUSH
13674: LD_EXP 43
13678: PPUSH
13679: LD_INT 1
13681: PPUSH
13682: CALL_OW 322
// SetTech ( 10 , sideP2 , state_enabled ) ;
13686: LD_INT 10
13688: PPUSH
13689: LD_EXP 43
13693: PPUSH
13694: LD_INT 1
13696: PPUSH
13697: CALL_OW 322
// SetTech ( 36 , sideP2 , state_enabled ) ;
13701: LD_INT 36
13703: PPUSH
13704: LD_EXP 43
13708: PPUSH
13709: LD_INT 1
13711: PPUSH
13712: CALL_OW 322
// SetTech ( 31 , sideP2 , state_enabled ) ;
13716: LD_INT 31
13718: PPUSH
13719: LD_EXP 43
13723: PPUSH
13724: LD_INT 1
13726: PPUSH
13727: CALL_OW 322
// SetTech ( 66 , sideP2 , state_enabled ) ;
13731: LD_INT 66
13733: PPUSH
13734: LD_EXP 43
13738: PPUSH
13739: LD_INT 1
13741: PPUSH
13742: CALL_OW 322
// end ;
13746: END
// every 0 0$1 trigger waves = 10 do
13747: LD_EXP 45
13751: PUSH
13752: LD_INT 10
13754: EQUAL
13755: IFFALSE 14150
13757: GO 13759
13759: DISABLE
// begin SetRestrict ( 37 , sideP1 , true ) ;
13760: LD_INT 37
13762: PPUSH
13763: LD_EXP 42
13767: PPUSH
13768: LD_INT 1
13770: PPUSH
13771: CALL_OW 324
// SetRestrict ( 34 , sideP1 , true ) ;
13775: LD_INT 34
13777: PPUSH
13778: LD_EXP 42
13782: PPUSH
13783: LD_INT 1
13785: PPUSH
13786: CALL_OW 324
// SetTech ( 55 , sideP1 , state_enabled ) ;
13790: LD_INT 55
13792: PPUSH
13793: LD_EXP 42
13797: PPUSH
13798: LD_INT 1
13800: PPUSH
13801: CALL_OW 322
// SetTech ( 14 , sideP1 , state_enabled ) ;
13805: LD_INT 14
13807: PPUSH
13808: LD_EXP 42
13812: PPUSH
13813: LD_INT 1
13815: PPUSH
13816: CALL_OW 322
// SetTech ( 61 , sideP1 , state_enabled ) ;
13820: LD_INT 61
13822: PPUSH
13823: LD_EXP 42
13827: PPUSH
13828: LD_INT 1
13830: PPUSH
13831: CALL_OW 322
// SetTech ( 58 , sideP1 , state_enabled ) ;
13835: LD_INT 58
13837: PPUSH
13838: LD_EXP 42
13842: PPUSH
13843: LD_INT 1
13845: PPUSH
13846: CALL_OW 322
// SetTech ( 59 , sideP1 , state_enabled ) ;
13850: LD_INT 59
13852: PPUSH
13853: LD_EXP 42
13857: PPUSH
13858: LD_INT 1
13860: PPUSH
13861: CALL_OW 322
// SetTech ( 23 , sideP1 , state_enabled ) ;
13865: LD_INT 23
13867: PPUSH
13868: LD_EXP 42
13872: PPUSH
13873: LD_INT 1
13875: PPUSH
13876: CALL_OW 322
// SetTech ( 33 , sideP1 , state_enabled ) ;
13880: LD_INT 33
13882: PPUSH
13883: LD_EXP 42
13887: PPUSH
13888: LD_INT 1
13890: PPUSH
13891: CALL_OW 322
// SetTech ( 38 , sideP1 , state_enabled ) ;
13895: LD_INT 38
13897: PPUSH
13898: LD_EXP 42
13902: PPUSH
13903: LD_INT 1
13905: PPUSH
13906: CALL_OW 322
// SetTech ( 64 , sideP1 , state_enabled ) ;
13910: LD_INT 64
13912: PPUSH
13913: LD_EXP 42
13917: PPUSH
13918: LD_INT 1
13920: PPUSH
13921: CALL_OW 322
// SetTech ( 67 , sideP1 , state_enabled ) ;
13925: LD_INT 67
13927: PPUSH
13928: LD_EXP 42
13932: PPUSH
13933: LD_INT 1
13935: PPUSH
13936: CALL_OW 322
// SetTech ( 68 , sideP1 , state_enabled ) ;
13940: LD_INT 68
13942: PPUSH
13943: LD_EXP 42
13947: PPUSH
13948: LD_INT 1
13950: PPUSH
13951: CALL_OW 322
// SetRestrict ( 37 , sideP2 , true ) ;
13955: LD_INT 37
13957: PPUSH
13958: LD_EXP 43
13962: PPUSH
13963: LD_INT 1
13965: PPUSH
13966: CALL_OW 324
// SetRestrict ( 34 , sideP2 , true ) ;
13970: LD_INT 34
13972: PPUSH
13973: LD_EXP 43
13977: PPUSH
13978: LD_INT 1
13980: PPUSH
13981: CALL_OW 324
// SetTech ( 55 , sideP2 , state_enabled ) ;
13985: LD_INT 55
13987: PPUSH
13988: LD_EXP 43
13992: PPUSH
13993: LD_INT 1
13995: PPUSH
13996: CALL_OW 322
// SetTech ( 14 , sideP2 , state_enabled ) ;
14000: LD_INT 14
14002: PPUSH
14003: LD_EXP 43
14007: PPUSH
14008: LD_INT 1
14010: PPUSH
14011: CALL_OW 322
// SetTech ( 61 , sideP2 , state_enabled ) ;
14015: LD_INT 61
14017: PPUSH
14018: LD_EXP 43
14022: PPUSH
14023: LD_INT 1
14025: PPUSH
14026: CALL_OW 322
// SetTech ( 58 , sideP2 , state_enabled ) ;
14030: LD_INT 58
14032: PPUSH
14033: LD_EXP 43
14037: PPUSH
14038: LD_INT 1
14040: PPUSH
14041: CALL_OW 322
// SetTech ( 59 , sideP2 , state_enabled ) ;
14045: LD_INT 59
14047: PPUSH
14048: LD_EXP 43
14052: PPUSH
14053: LD_INT 1
14055: PPUSH
14056: CALL_OW 322
// SetTech ( 23 , sideP2 , state_enabled ) ;
14060: LD_INT 23
14062: PPUSH
14063: LD_EXP 43
14067: PPUSH
14068: LD_INT 1
14070: PPUSH
14071: CALL_OW 322
// SetTech ( 33 , sideP2 , state_enabled ) ;
14075: LD_INT 33
14077: PPUSH
14078: LD_EXP 43
14082: PPUSH
14083: LD_INT 1
14085: PPUSH
14086: CALL_OW 322
// SetTech ( 38 , sideP2 , state_enabled ) ;
14090: LD_INT 38
14092: PPUSH
14093: LD_EXP 43
14097: PPUSH
14098: LD_INT 1
14100: PPUSH
14101: CALL_OW 322
// SetTech ( 64 , sideP2 , state_enabled ) ;
14105: LD_INT 64
14107: PPUSH
14108: LD_EXP 43
14112: PPUSH
14113: LD_INT 1
14115: PPUSH
14116: CALL_OW 322
// SetTech ( 68 , sideP2 , state_enabled ) ;
14120: LD_INT 68
14122: PPUSH
14123: LD_EXP 43
14127: PPUSH
14128: LD_INT 1
14130: PPUSH
14131: CALL_OW 322
// SetTech ( 67 , sideP2 , state_enabled ) ;
14135: LD_INT 67
14137: PPUSH
14138: LD_EXP 43
14142: PPUSH
14143: LD_INT 1
14145: PPUSH
14146: CALL_OW 322
// end ;
14150: END
// every 0 0$1 trigger waves = 11 do
14151: LD_EXP 45
14155: PUSH
14156: LD_INT 11
14158: EQUAL
14159: IFFALSE 14239
14161: GO 14163
14163: DISABLE
// begin SetTech ( 65 , sideP1 , state_enabled ) ;
14164: LD_INT 65
14166: PPUSH
14167: LD_EXP 42
14171: PPUSH
14172: LD_INT 1
14174: PPUSH
14175: CALL_OW 322
// SetTech ( 56 , sideP1 , state_enabled ) ;
14179: LD_INT 56
14181: PPUSH
14182: LD_EXP 42
14186: PPUSH
14187: LD_INT 1
14189: PPUSH
14190: CALL_OW 322
// SetTech ( 65 , sideP2 , state_enabled ) ;
14194: LD_INT 65
14196: PPUSH
14197: LD_EXP 43
14201: PPUSH
14202: LD_INT 1
14204: PPUSH
14205: CALL_OW 322
// SetTech ( 67 , sideP1 , state_enabled ) ;
14209: LD_INT 67
14211: PPUSH
14212: LD_EXP 42
14216: PPUSH
14217: LD_INT 1
14219: PPUSH
14220: CALL_OW 322
// SetTech ( 56 , sideP2 , state_enabled ) ;
14224: LD_INT 56
14226: PPUSH
14227: LD_EXP 43
14231: PPUSH
14232: LD_INT 1
14234: PPUSH
14235: CALL_OW 322
// end ;
14239: END
// every 0 0$1 trigger waves = 12 do
14240: LD_EXP 45
14244: PUSH
14245: LD_INT 12
14247: EQUAL
14248: IFFALSE 14283
14250: GO 14252
14252: DISABLE
// begin SetTech ( 25 , sideP1 , state_enabled ) ;
14253: LD_INT 25
14255: PPUSH
14256: LD_EXP 42
14260: PPUSH
14261: LD_INT 1
14263: PPUSH
14264: CALL_OW 322
// SetTech ( 25 , sideP2 , state_enabled ) ;
14268: LD_INT 25
14270: PPUSH
14271: LD_EXP 43
14275: PPUSH
14276: LD_INT 1
14278: PPUSH
14279: CALL_OW 322
// end ; end_of_file
14283: END
// every 0 0$15 trigger waves = 14 do
14284: LD_EXP 45
14288: PUSH
14289: LD_INT 14
14291: EQUAL
14292: IFFALSE 14342
14294: GO 14296
14296: DISABLE
// begin enable ;
14297: ENABLE
// if FilterAllUnits ( [ [ f_side , randomedColors [ 1 ] ] , [ f_type , unit_human ] ] ) = 0 then
14298: LD_INT 22
14300: PUSH
14301: LD_EXP 44
14305: PUSH
14306: LD_INT 1
14308: ARRAY
14309: PUSH
14310: EMPTY
14311: LIST
14312: LIST
14313: PUSH
14314: LD_INT 21
14316: PUSH
14317: LD_INT 1
14319: PUSH
14320: EMPTY
14321: LIST
14322: LIST
14323: PUSH
14324: EMPTY
14325: LIST
14326: LIST
14327: PPUSH
14328: CALL_OW 69
14332: PUSH
14333: LD_INT 0
14335: EQUAL
14336: IFFALSE 14342
// YouWinInMultiplayer ;
14338: CALL_OW 106
// end ; end_of_file
14342: END
// export ExtraStrings ; export function ShowTimer ; var AllStrings ; begin
14343: LD_INT 0
14345: PPUSH
14346: PPUSH
// AllStrings := [ #Multi1x1-Time , tick ] ;
14347: LD_ADDR_VAR 0 2
14351: PUSH
14352: LD_STRING #Multi1x1-Time
14354: PUSH
14355: LD_OWVAR 1
14359: PUSH
14360: EMPTY
14361: LIST
14362: LIST
14363: ST_TO_ADDR
// Display_Strings := AllStrings ;
14364: LD_ADDR_OWVAR 47
14368: PUSH
14369: LD_VAR 0 2
14373: ST_TO_ADDR
// end ;
14374: LD_VAR 0 1
14378: RET
// every 0 0$1 do
14379: GO 14381
14381: DISABLE
// begin ShowTimer ;
14382: CALL 14343 0 0
// enable ;
14386: ENABLE
// end ;
14387: END
